我是 FFmpeg 的新手,我才刚刚开始。我有以下两个命令来上传
.mov
并缩小其大小并将其另存为 .mp4
。我还制作了相同的缩略图版本。
我在这里所做的似乎效果很好,我设法将
.mov
文件从 12.5mb 缩小到大约 1mb .mp4
。
我的问题是,我可以只为源视频提供
.mp4
,还是还需要提供额外的 .ogg
和/或 .webm
文件?如果是这样,如何最好地实现这一目标?我是否必须再次循环 FFmpeg 命令才能输出新的 .ogg
和 .webm
文件?
exec("ffmpeg -i src.mov -ss 00 -to 60 -vf scale=700:-1 -crf 30 -an -movflags +faststart output.mp4");
exec("ffmpeg -i src.mov -ss 00 -to 10 -vf 'scale=128:128:force_original_aspect_ratio=increase, crop=128:128' -crf 30 -an tn_output.mp4");
我可以只为源视频提供 .mp4,还是还需要提供额外的 .ogg 和/或 .webm 文件?
我不太精通 webdev,但您希望您的
<video>
内容拥有多个来源以实现浏览器兼容性。例如,IIRC,Chromium 本身不支持 mp4。
如果是这样,如何最好地实现这一目标?我是否必须再次循环 FFmpeg 命令才能输出新的 .ogg 和 .webm 文件?
FFmpeg 可以从一个源同时生成多个视频文件:
ffmpeg -i src.mov -ss 00 -to 60 \
-filter_complex [v:0]scale=700:-1,split=3[v1][v2][v3] \
-map [v1] output.mp4 \
-map [v2] output.webm \
-map [v3] output.ogg
您需要使用
split
过滤器来复制视频流,因为一个流只能由一个输出文件使用。
我不确定这是否比调用 FFmpeg 3 次更快(最有可能,但我自己从未尝试过)。