关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。
1年前关闭。
Improve this question
这是我的命令:
ffmpeg -stream_loop -1 -f concat -i input.txt -i audio.mp3 -map 0:v -map 1:a -shortest output.mp4
它从多个视频创建一个视频并且它正在工作,但是输出视频尺寸太大,我的问题是如何获得一个尺寸较小但不需要另一个命令的视频。
最佳答案
H.264
使用-crf
和 -preset
使用 libx264 编码时:
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
. 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
-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
关于video - 在同一命令中减小使用 ffmpeg 制作的视频的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712598/