使用 ffmpeg 转换后使用 TagLib 打开时出现"MPEG audio header not found"错误



我只需执行以下操作即可转换wma文件。。。

ffmpeg -i song.wma -f mp3 song.mp3

然后我可以在Windows Media player中播放mp3文件,所以看起来转换成功了。

然而,如果我试图在TagLib中打开文件,我会在下面的行中得到一个错误"MPEG音频头未找到"。。。

TagLib.File tf = TagLib.File.Create("song.mp3");

我已经在一些wma文件上尝试过了,所以不仅仅是那个有问题。

有人知道我做错了什么吗?我发现ffmpeg的文档非常丰富,作为音频编码领域的一个完全无知的人,我不知道它的大部分含义。可能是我在转换中遗漏了一些东西,尽管这不能解释为什么WMP可以播放它,但TagLib不能打开它。

虽然不是我最初问题的严格答案,但我设法找到了另一种方法来做我想做的事情。

请参阅Corey对我问题的回答,他在回答中展示了如何使用他的NAudio包以代码形式转换文件。无论如何,这是一种更好的方法,因为它不依赖于运行外部程序,而外部程序会导致它自己的问题。由他的包生成的转换文件在TagLib中运行,没有任何问题。

最新更新