pr.*_*zar 22 video conversion ffmpeg mp4 webm
为了使用 HTML5 视频的网站,我必须将 76 个 mp4 文件转换为 webm。我说的是 10 Gb 的 mp4 文件......我知道我可以简单地要求 ffmpeg 使用:
ffmpeg -i input_file.mp4 output_file.webm
Run Code Online (Sandbox Code Playgroud)
当然,我会通过以下方式递归地执行此操作:
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;
Run Code Online (Sandbox Code Playgroud)
我什至尝试了一些我在互联网上找到的东西:
ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm
Run Code Online (Sandbox Code Playgroud)
但问题是它不会花我不到一周的时间!!!我究竟做错了什么?有没有办法加快速度?如果我转换为 ogg 会提高速度吗?请帮忙!!!
tho*_*ter 11
转码视频需要时间。它还需要更多关于编码参数的知识;ffmpeg 的默认值不太可能适合您,甚至可能无法创建可用的输出文件。
这是一个开始:
这些设置将编码为特定的平均比特率(3900kbit 的视频比特率),因此比特率会出现峰值。
MP4和WebM使用不同的视频编解码器,所以没有捷径;视频必须转码。
当然,编码速度会因帧大小、帧速率和质量设置而有很大差异。对于 720p 编码,您可能希望能够在过去几年的 CPU 上编码大约 1:1(即 10 小时内 10 小时的视频)。如果您像链接中给出的示例那样进行两次 ABR 编码,则几乎翻倍。
pr.*_*zar 10
加倍还是减半?所以这是一个死胡同..我不会玩比特率,我永远不知道对质量或大小有什么期望..我想我会坚持这个并让客户坚持到转换结束..
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;
Run Code Online (Sandbox Code Playgroud)
我正在为未来的用户发布它,实际上我提高了速度,但我的 CPU 工作得非常糟糕:每个内核 60% 到 80%!现在我认为它会花费更少的时间:3 天而不是 6 或 7 天..我希望它不会破坏它..^_^
无论如何谢谢你!
编辑:在 LordNeckbeard 和 neon_overload -sameq评论后删除了开关 -sameq 并不意味着相同的“质量”