我理解(可能不正确)从 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 的平均比特率。(见详细信息)