如何使用 ffmpeg 将音频从 webm 保存为 ogg 而无需转码?

如何使用 ffmpeg 将音频从 webm 保存为 ogg 而无需转码?

我理解(可能不正确)从 YouTube 下载的 webm 音频文件基本上是 opus 文件结构内的 vorbis 流。有没有办法提取该流并将其保存为 ogg 文件而无需转码?到目前为止,我的所有实验要么只生成带有 ogg 扩展名的 opus 文件(使用-c:副本例如),或者转码后文件的质量会大幅下降。

答案1

.webm文件确实可以包含 vorbis 音频,但也可以包含 opus 音频。ogg 文件也可以包含这两种音频格式。无需转换为文件即可传输音频.ogg

ffmpeg -i "$INPUTFILE" -vn -c:a copy "$(basename "$INPUTFILE" .webm)".ogg

如果您需要 ogg 容器中的 vorbis 音频,但您的.webm音频包含 opus 音频,那么您显然需要转码。

在 中oggenc-q 6设置将导致文件比特率可变,约为 192 kbps。在此设置下,质量损失几乎不再被察觉(“透明”),并且是最佳设置,可实现最小文件大小下的出色质量。在 中ffmpeg,相应的选项为-qscale:a 6

ffmpeg -i "$INPUTFILE" -vn -c:a libvorbis -qscale:a 6 "$(basename "$INPUTFILE" .webm)".ogg

范围是 -1 到 10,其中 10 表示非常高的质量。默认值为-qscale:a 3,这对应于大约 112 的平均比特率。(见详细信息

相关内容