将 Opus 音频流从 WebM 重新混合到另一个容器(如 ogg 或 opus)时,我遇到了一个奇怪的问题。
通过频谱分析仪运行输出文件清楚地表明数据中存在丢失/变化。我不确定结果是否 100% 准确,尽管多个程序证实了这一点。我已经尝试了多种使用 FFmpeg 和 MKVExtract 的方法,但在这两种情况下,提取的文件都有明显的差异(也在大小上)。
经过深入研究,我发现了FFmpeg 中的这个错误,它可以解释错位以及文件大小的变化。但这里似乎还有更多事情发生。我使用 Audacity 将源文件和所有提取的文件转换为 32 位 WAV,然后再次分析它们。在这种情况下,偏移更加明显,实际数据也存在差异。
如有必要,是否有更强大的测试方法和可靠的工具可以更方便地进行批处理?
这是 Audacity 和 Spek 的频谱输出以及一些附加信息:
Source file: audio.webm
Size: 2.94 MB
Spek: https://i.imgur.com/5NtmwG7.png
Audacity: https://i.imgur.com/hEs8Ajo.png
Run Code Online (Sandbox Code Playgroud)
Extracted file using FFmpeg: audio_extracted_ffmpeg.opus
Size: 2.90 MB
Spek: https://i.imgur.com/5UBV3FV.png
Audacity: https://i.imgur.com/lsZl0Bt.png
Run Code Online (Sandbox Code Playgroud)
Extracted file using MKVExtract: audio_extracted_mkvextract.opus
Size: 2.91 MB
Spek: https://i.imgur.com/waa1TOJ.png
Audacity: https://i.imgur.com/TAqyIst.png
Run Code Online (Sandbox Code Playgroud)
Comparison between the source WebM and the FFmpeg Opus in Audacity:
Source file: https://i.imgur.com/xYciUfH.png
Extracted via …
Run Code Online (Sandbox Code Playgroud)