对于.webm
使用以下方式获取的文件youtube-dl
-f bestaudio
不包含视频流,最好运行:
ffmpeg -i input.webm -vn -c:a copy output.opus
或者可以简单地重命名源文件并更改扩展名吗?
我的意思是,音频流显然是相同的,但就元数据而言,第二种方法有什么缺点吗?
更新:我检查了元数据mediainfo
。即使我将 ffmpeg 输出保存为 .webm(通过运行ffmpeg -i input.webm -vn -c:a copy output.webm
),元数据仍然不同。
注意名为“位深度”的新条目:
以下是.opus
结果:
我想要一个规范的答案,容器定义中是否有东西将其标识为“纯音频”文件,而不是音频/视频文件,只有通过“重新包装”流才能正确处理新的容器文件。
答案1
WebM是马特罗斯卡,这是一个容器格式用于多媒体数据。作品是一种音频格式(音频编解码器),通常存储在奥格容器,但也可以存储在 Matroska 容器或 WebM 容器内。
当 Opus 音轨存储在 Ogg 容器中时,文件名后缀通常为“.opus”(但当沃比斯音轨存储在Ogg文件中,后缀通常为“.ogg”)
如果您更改文件名后缀(从“ .webm”到“ .opus”),文件内的数据将保持不变。
我通常从 webm 文件中提取音轨的步骤是:
mkvextract file/path.webm tracks 0:file/path.opus
请注意,“file/path.opus”将是具有 Opus 格式的 Ogg 容器(如果 WebM 包含该格式)。
例如,可以通过在 ArchLinux 中安装包“mkvtoolnix-cli”来获得 mkvextract。