将 webm(仅音频)文件重命名为 .opus 可以吗?

将 webm(仅音频)文件重命名为 .opus 可以吗?

对于.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),元数据仍然不同。

注意名为“位深度”的新条目:

使用 mediainfo GUI 比较 webm 输入和 webm 输出

以下是.opus结果:

mediainfo GUI 的 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。

答案2

.opus 是 Ogg 容器内的 Opus(参考RFC 5334),.webm 是一个 Matroska 容器(并且它应该使用网络认可的编解码器)。您还可以使用 .mka 作为仅包含音轨的 Matroska 容器(参考)。

重命名文件是错误的,容器与扩展名不匹配。您可以毫无损失地从一个容器转换到另一个容器,例如使用 yt-dlp 的 remux 选项。

相关内容