鱼C论坛

 找回密码
 立即注册
查看: 315|回复: 3

[新手教程] 使用FFMPEG进行视频压缩

[复制链接]
发表于 2024-2-6 01:26:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用FFMPEG进行视频压缩


opt_视频压缩.png

比如我们要使用 FFmpeg 将 60fps 的 1080p 视频压缩为 30fps 的 720p 视频,需要执行两项操作:帧率(frame rate)和分辨率(resolution)。

下面是一个基本的命令行示例,说明如何做到这一点:

  1. ffmpeg -i input.mp4 -r 30 -s hd720 output.mp4
复制代码

在这个命令中:

  • ffmpeg 是调用 FFmpeg 程序的命令。
  • -i input.mp4 指定输入文件,input.mp4 是你想要转换的 1080p 60fps 的视频文件。
  • -r 30 设置输出视频的帧率为 30fps。
  • -s hd720 设置输出视频的分辨率为 720p,即 1280x720。
  • output.mp4 是处理后的输出文件。

此命令将视频帧率减半,并将视频分辨率降低到 720p,但不会对视频进行额外的压缩或质量控制。

如果你想要进一步压缩视频文件大小,可以添加比特率控制参数(如 -b:v 用于视频比特率,-b:a 用于音频比特率)或者使用更高级的编码器设置(如 -crf 用于常量质量模式,在 x264 和 x265 编码器中)。

例如,要在保持适当质量的同时进一步压缩视频,你可以使用 CRF(Constant Rate Factor)参数:

  1. ffmpeg -i input.mp4 -r 30 -s hd720 -c:v libx264 -crf 23 -preset fast output.mp4
复制代码

在这个命令中:

  • -c:v libx264 表示使用 libx264 编码器(H.264 编码)。
  • -crf 23 是 libx264 编码器的常量质量控制选项,CRF 值范围从 0(无损压缩)到 51(最差质量),CRF 值约 18 至 28 是高质量输出的典型范围,23 是默认值。
  • -preset fast 控制编码速度和压缩率的权衡,fast 预设是比默认的 medium 快的预设,它会稍微增加文件大小,但减少编码时间。其他选项包括 ultrafast, superfast, veryfast, faster, medium, slow, slower, veryslow。速度越慢,压缩效果越好,但编码时间更长。


本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-6 01:27:02 | 显示全部楼层
FFmpeg 是一个强大的开源多媒体框架,可以用于处理视频和音频文件。要使用 FFmpeg 进行视频压缩,你可以通过命令行输入相应的参数来完成。

下面是一个示例代码,展示如何使用 FFmpeg 进行视频压缩:

  1. import subprocess

  2. def compress_video(input_file, output_file, frame_rate, resolution):
  3.     command = [
  4.         'ffmpeg',
  5.         '-i', input_file,
  6.         '-r', str(frame_rate),
  7.         '-s', resolution,
  8.         output_file
  9.     ]
  10.     subprocess.run(command)

  11. input_file = 'input.mp4'
  12. output_file = 'output.mp4'
  13. frame_rate = 30
  14. resolution = 'hd720'

  15. compress_video(input_file, output_file, frame_rate, resolution)
复制代码


在上述代码中,我们使用了 `subprocess` 模块来执行命令行的操作。`compress_video` 函数接受输入文件名、输出文件名、帧率和分辨率作为参数,然后构建了一个包含 FFmpeg 命令和参数的列表,并使用 `subprocess.run` 来运行该命令。

你可以根据需要修改输入文件名、输出文件名、帧率和分辨率等参数,以适应你的具体需求。同时,你还可以根据自己的要求添加更多的 FFmpeg 参数,如比特率控制参数、编码器设置等,来实现更复杂的视频处理操作。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-6 08:40:26 | 显示全部楼层
100秒搞懂:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-7 06:43:50 | 显示全部楼层
好东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 10:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表