FFmpeg MOV 到 MP4,我还需要 .OGG 、 .WEBM 文件吗?

发布于 2025-01-11 14:29:01 字数 656 浏览 0 评论 0原文

我是 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 输出.mp4");

exec( “ffmpeg -i src.mov -ss 00 - 到 10 -vf 'scale=128:128:force_original_aspect_ratio=increase,crop=128:128'-crf 30 -an tn_output.mp4");

I am new to FFmpeg and I'm just getting started. I have the two following commands to take a .mov upload and downsize it and save it out as an .mp4. I also produce a thumbnail version of the same.

What I am doing here seems to work well and I manage to get the .mov file from 12.5mb to about a 1mb .mp4.

My question from here is, can I get away with only providing a .mp4 for the source video, or do I need to provide additional .ogg and/or .webm files too? An if so, how is that best achieved? Would I have to loop that FFmpeg command again to output new .ogg and .webm files?

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");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终遇你 2025-01-18 14:29:01

我可以只为源视频提供 .mp4,还是还需要提供额外的 .ogg 和/或 .webm 文件?

我不太熟悉 webdev,但您希望您的 内容拥有多个来源以实现浏览器兼容性。例如,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 次更快(最有可能,但我自己从未尝试过)。

can I get away with only providing a .mp4 for the source video, or do I need to provide additional .ogg and/or .webm files too?

I'm not that well-versed in webdev, but you'd like to have your <video> content to have multiple sources for browser compatibility. IIRC, Chromium does not natively support mp4, for example.

An if so, how is that best achieved? Would I have to loop that FFmpeg command again to output new .ogg and .webm files?

FFmpeg can produce multiple video files at once from one source:

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

You need to use split filter to copy the video streams as one stream can only be used by one output file.

What I do not know for sure is whether this is faster than calling FFmpeg 3 times (most likely, but never tried it myself).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文