C# 从视频文件中提取wav文件

C# 从视频文件中提取wav文件,c#,winforms,video,audio,C#,Winforms,Video,Audio,我正在开发一个应用程序,需要从视频中提取音频。音频需要以.wav格式提取,但我对视频格式没有问题。任何格式都可以,只要我能提取wav文件中的音频 目前,我正在使用Windows窗体中的Windows Media Player COM控件来播放视频,但任何其他嵌入式播放器也可以 有什么建议吗? 感谢可能最容易使用ffmpeg实现这类功能。关于如何使用GraphEdit提取音频,GraphEdit是API的前端用户界面,因此您可以使用API执行所有操作。 您可以使用liberty为托管世界包装Dir

我正在开发一个应用程序,需要从视频中提取音频。音频需要以.wav格式提取,但我对视频格式没有问题。任何格式都可以,只要我能提取wav文件中的音频

目前,我正在使用Windows窗体中的Windows Media Player COM控件来播放视频,但任何其他嵌入式播放器也可以

有什么建议吗?
感谢

可能最容易使用ffmpeg实现这类功能。

关于如何使用GraphEdit提取音频,GraphEdit是API的前端用户界面,因此您可以使用API执行所有操作。

您可以使用liberty为托管世界包装DirectShow API。

如果您想用C#实现这一点,请查看。它可以分析音频格式(如FFMpeg)并提供音频流。给你

示例中的代码片段:

using NAudio.Wave;
using System.IO;

...

// contentAsByteArray consists of video bytes
MemoryStream contentAsMemoryStream = new MemoryStream(contentAsByteArray);

using (WaveStream pcmStream =
    WaveFormatConversionStream.CreatePcmStream(
        new StreamMediaFoundationReader(contentAsMemoryStream)))
{
    WaveStream blockAlignReductionStream = new BlockAlignReductionStream(pcmStream);

    // Do something with the wave stream
}

在这种情况下,我应该在安装程序中为用户提供DirectX库吗?DirectShow内置于XP和更高版本中。谢谢!我在考虑更多的.dll格式的东西,但是如果我没有找到更合适的东西,一个可执行文件就可以了。使用exe没有什么丢脸的!;)是的,我知道你来自哪里。这取决于你希望它有多专业。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@马克:你完全正确。将来我会尽力按照你的建议去做。考虑到这个相当广泛的话题,这里的答案将相当冗长,坦率地说,我不知道从哪里开始。NAudio库对我的解决方案至关重要。添加了一个代码片段。谢谢!9年前我问过这个问题,我使用了我认为可以接受的答案中提供的解决方案。您的解决方案似乎也很好,不幸的是,我无法再真正测试它了。:)@我上周不得不解决这个问题,我就是这样发现你的问题的。由于该主题仍然相关,并且缺乏令人满意的答案(对于我的用例),我决定提供我的:)