如何在不使用 ffmpeg 转码的情况下将音频从 webm 保存到 ogg?

doc*_*phd 4 ffmpeg

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

van*_*ium 6

.webm文件确实可以包含 vorbis 音频,但它也可以包含 opus 音频。此外,ogg 文件可以包含两种音频格式。可以在不转换为.ogg文件的情况下传输音频:

ffmpeg -i "$INPUTFILE" -vn -c:a copy "$(basename "$INPUTFILE" .webm)".ogg
Run Code Online (Sandbox Code Playgroud)

如果您需要 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
Run Code Online (Sandbox Code Playgroud)

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