我想开始使用 WebM 格式和 VP9 编解码器来播放我的 YouTube 视频。我知道压缩率越高,速度越慢,但 FFmpeg 只使用我的 8 个内核中的 1 个。我尝试在命令中使用 -threads 8,但 FFmpeg 似乎忽略了它。据我所知,VP9 编码器应该支持多线程。我该怎么做才能让它工作?
FFmpeg version 2.7.2-1build1
libvpx1 version 1.3.0-3ubuntu1
libvpx2 version 1.4.0-4
使用的命令:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 10 -b:v 5000k -c:a libvorbis output.webm
既然如此,我是否需要安装两个 libvpx 包?在 Synaptic 中,libvpx2 旁边有 Ubuntu 图标,所以我猜另一个是升级到 15.10 后留下的?
答案1
感谢@bodhi.zazen 和@LordNeckbeard 提供的有关选项顺序的信息。显然,libvpx 编码器对此更加挑剔。当我在 -c:v libvpx 后添加 -threads 选项时,根据 top 数据,它明显使用了更多内核。
-threads 0 仅使用 1 个内核,-threads 8 使用 2 个内核,而 -threads 16 使用 4 个内核。我尝试使用更高的数字,但编码器表示不建议使用超过 16 个线程,并且不会再使用任何 CPU。编码速度本身现在大约快两倍。再次感谢您的帮助!
答案2
对于具有 16 个 CPU 的服务器,您可以尝试此选项:-threads 16 -slices 16 -cpu-used -4