video - 在同一命令中减小使用 ffmpeg 制作的视频的大小
问题描述
这是我的命令:
ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -shortest output.mp4
它从多个视频创建一个视频并且它正在工作,但是输出视频尺寸太大,我的问题是如何获得一个尺寸较小但不需要另一个命令的视频。
解决方案
H.264
在使用libx264 编码时使用 and -crf
:-preset
ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -c:v libx264 -crf 29 -preset slower -shortest -movflags +faststart output.mp4
-crf
使用提供可接受质量的最高值。默认值为 23。值 29 应小 50% 左右,但质量较低。-preset
尽可能使用最慢的预设。默认为medium
。- 请参阅FFmpeg 维基:H.264。
HEVC/H.265
文件大小应小于 H.264,但编码速度较慢,您的播放器或设备可能不支持:
ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -c:v libx265 -crf 34 -preset slow -shortest -movflags +faststart output.mp4
- libx265 也使用
-crf
and-preset
,但-crf
值有些不同。请参阅FFmpeg 维基:H.265。
强制输出文件大小
文件大小无法使用-crf
. 如果您需要将视频限制在一定大小以下,请使用两次。但是,这并不比 更好-crf
,而且更慢,更复杂,并且仅在您需要输出为特定大小时使用。
较小的宽度 x 高度(分辨率)
添加比例过滤器。将宽度 x 高度缩小 50% 的示例:
ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -vf "scale=iw/2:ih/2" -c:v libx264 -crf 29 -preset slower -shortest -movflags +faststart output.mp4
推荐阅读
- c++ - 移位运算符如何在c ++中处理负数
- arrays - 过滤数组以获取多个值并限制结果
- pycharm - 在 Windows 上的 PyCharm Git-Bash 控制台中手动激活虚拟环境后,缺少 Bash 命令(bash:找不到命令)
- python - 尝试访问网页时最大重试错误
- java - Java:尝试暂停程序时,整个程序冻结
- string-comparison - 我一直在尝试将从 2 个来源收到的名称相互匹配,并检查它们是否几乎匹配
- python-3.x - 如何检查图形是否包含负循环但无法从源头到达?
- java - 为什么“THIS”关键字将子对象表示为父类的方法?
- wordpress - 如何将所有页脚小部件合并到一个小部件
- php - 如果 elseIf 没有按预期工作,PHP 将返回简写