如何使用ffmpeg高效的压缩视频
2023-12-17 16:01:41
不开启多线程压缩:
ffmpeg -y -i 1_input.mp4 -c:a copy -c:v libx264 -profile:v high -r 30 -crf 30 -s 1920x1080 -movflags +faststart 1_output.mp4
开启硬件和多线程压缩
ffmpeg -y -i 2_input.mp4 -c:a copy -c:v libx264 -profile:v high -r 30 -crf 30 -b:v 200k -s 1920x1080 -movflags +faststart 2_output.mp4 -hwaccel cuvid -threads 4
这段命令是使用 ffmpeg
工具来对一个视频文件进行转码和编辑。逐个解释每个参数:
- ffmpeg: 这是命令行工具的名称,用于处理多媒体内容,如视频、音频和字幕。
- -y: 如果输出文件已存在,这个选项会使得
ffmpeg
直接覆盖它,而不是询问是否覆盖。 - -i 2_input.mp4: 指定输入文件的名称,这里是
2_input.mp4
。 - -c:a copy: 这表示复制音频流而不进行转码。也就是说,音频部分不会重新编码,直接复制。
- -c:v libx264: 使用
libx264
编码器来转码视频流。libx264
是一个非常流行的 H.264 编码器。 - -profile:v high: 设置视频的 H.264 配置文件为
high
。这决定了编码的复杂性和视频的质量。 - -r 30: 设置视频的帧率为 30 fps。
- -crf 30: 设置视频的质量。CRF值越小,质量越高,但文件大小也越大。CRF是Constant Rate Factor的缩写,这是一个相对质量/文件大小的度量。
- -b:v 200k: 设置视频的比特率为 200 kbps。这决定了视频的质量和文件大小。
- -s 1920x1080: 设置视频的分辨率为 1920x1080,即1080p。
- -movflags +faststart: 这个选项将视频文件放在“快速启动”轨道上,这使得视频在某些浏览器或平台上可以更快地开始播放。
- 2_output.mp4: 指定输出文件的名称,这里是
2_output.mp4
。 - -hwaccel cuvid: 使用
cuvid
硬件加速来进行视频编码。这通常用于NVIDIA的GPU,以加速H.264编码过程。 - -threads 4: 使用4个线程来进行编码工作。这可以提高编码速度,但具体效果取决于硬件和具体任务。
总结:这个命令从输入文件 2_input.mp4
中读取内容,对其音频流进行复制,对视频流使用 libx264
编码器进行转码,并应用一系列的参数设置,然后将结果保存为 2_output.mp4
文件。
存在的问题:
1. 直接这么使用,或导致CPU拉满, 特别是批量压缩时会导致电脑卡死可以考虑限制CPU
2. 感觉有没有开启硬件和多线程, 速度上查不了太多
3. 压缩前1.93G ,压缩后300MB左右 , 压缩时间大概是340s左右 压缩率达90%(这个和参数设置有关)
4. 压缩的关键参数: 分辨率, 帧率,
文章来源:https://blog.csdn.net/Dreamhai/article/details/135044708
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!