如何获得MP4(视频文件)的声音部分?

时间:2012-05-17 09:58:46

标签: c# windows-phone-7 audio mp4 aac

我正在开发一个Windows Phone 7应用程序,它会进行视频录制。我想获得视频文件(MP4)的声音部分并对声音进行一些增强。我相信声音在MP4中保存为AAC帧。 (对吗?)如何提取视频MP4文件的声音?

由于这是一个视频文件,因此它可能是一个巨大的文件。因此,上传到云端并进行处理并不是一个好的选择。由于这个WP7应用程序我不能使用未损坏的dll :(有没有办法在纯C#中做?任何开源工具/样本?

谢谢!

1 个答案:

答案 0 :(得分:5)

MP4是一种容器格式,实际上声音部分并不总是AAC。它可以是MP3或任何其他数量的不同音频格式。你可能会想到M4A,我认为它需要AAC或ALAC。

关于音频提取的主题,应该可以仅使用托管代码从MP4中提取音频。您必须阅读MP4格式(例如here - this question也值得一读),然后在文件中搜索音频的位置,然后将其复制到其中自己的缓冲区或以块为单位进行操作。即使这样,您也必须能够识别出它不是您的应用不支持的音频格式。

可能已经存在一个.net库可以完成所有这些但我不知道。它可能不是很受欢迎,因为托管代码肯定不是解决此问题的最佳角度,但考虑到这是Windows Phone,正如您所指出的那样,它是您唯一的途径。

祝你好运!