【问题标题】:Reduce size of a video made with ffmpeg in the same command [closed]在同一命令中减小使用 ffmpeg 制作的视频的大小 [关闭]
【发布时间】:2020-09-02 19:45:45
【问题描述】:

这是我的命令:

ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -shortest output.mp4

它从多个视频创建一个视频并且它正在工作,但是输出视频尺寸太大,我的问题是如何获得一个尺寸较小但不需要其他命令的视频。

【问题讨论】:

  • 当你说:“更小的尺寸”,你的意思是更小的文件大小?还是更小的几何形状(宽度和高度)?

标签: video ffmpeg


【解决方案1】:

H.264

使用 libx264 编码时使用 -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 Wiki: 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-preset,但-crf 的值有些不同。见FFmpeg Wiki: H.265

强制输出文件大小

无法使用-crf 预先确定文件大小。如果您需要将视频限制在一定大小以下,请使用two-passes。但是,这并不比-crf“更好”,而且更慢、更复杂,并且仅在您需要输出为特定大小时使用。

小宽x高(分辨率)

添加scale filter。将宽 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2016-11-10
    • 2011-12-05
    • 2021-09-22
    • 2019-12-28
    相关资源
    最近更新 更多