无法找到适合“libvorbis”的输出格式 libvorbis:参数无效

无法找到适合“libvorbis”的输出格式 libvorbis:参数无效

我正在尝试使用以下命令通过 ffmpeg 将一些文件转换为 webm:

# First pass
ffmpeg -i input.mp4 -codec:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 8 -vf -an -pass 1 -f webm /dev/null

# Second pass
ffmpeg -i input.mp4 -codec:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 8 -vf -codec:a libvorbis -b:a 128k -pass 2 -f webm output.webm

但我收到了这个错误信息:

[NULL @ 0x55c5d4360220] Unable to find a suitable output format for 'libvorbis'
libvorbis: Invalid argument

我已经安装了 libvorbis0a、libvorbisenc2 和 libvorbisfile3,因此我在存储库中搜索但找不到任何 libvorbis 包(只有一个 libvorbis-dev,我猜是用于编译它的?)

所以我真的需要编译它还是我做错了什么?(我在 Ubuntu 16.10 上)

答案1

每个命令中都有-vf(视频过滤器) 选项,但您没有为其提供任何过滤器名称。请添加过滤器或-vf从每个命令中删除错误的过滤器。

答案2

以下是对我而言有效的方法:

通道1:

ffmpeg -i input.mp4 -an -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null

步骤2:

ffmpeg -i input.mp4 -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -c:a libvorbis -b:a 128k -pass 2 -f webm output.webm

注意:我将线程数改为 4,因为我没有 8 个。将其改回适合您的系统应该没有问题。我还将长手写 '-codec: ' 改为较短的-c:变体(习惯使然),并将 -an(无音频开关)移至第 1 遍的前面(我不确定在这种情况下是否需要它,但它不会造成任何损害)。当然,我删除了 @LordNeckbeard 提到的虚假的 -vf(视频过滤器)开关,它导致了您在第 2 遍中收到的错误以及在第一次传递到 /dev/null“在命令行上发现尾随选项。”的看不见的错误。

相关内容