将 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) 我设法使用Kid3 - Audio Tagger将专辑封面添加到 OGG/opus 文件中,但我想通过专辑的所有文件的命令行来完成。
我试过 ffmpeg 但它没有用:
$ ffmpeg -i myMP3File.opus -i Back_Cover-SMALLER.jpg -map 0:0 -map 1:0 -c copy -metadata:s:v title="Back_Cover-SMALLER.jpg" -metadata:s:v comment="Cover (back)" out.opus
Input #0, ogg, from 'myMP3File.opus':
Duration: 00:03:04.25, start: 0.000000, bitrate: 98 kb/s
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
Metadata:
ALBUM : Toto
track : 1/14
Input #1, image2, from 'Back_Cover-SMALLER.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 27608 kb/s
Stream #1:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 768x768 [SAR 100:100 DAR 1:1], 25 …
Run Code Online (Sandbox Code Playgroud)