【发布时间】:2009-06-18 05:41:06
【问题描述】:
我正在开发一个需要从视频中提取音频的应用程序。音频需要以 .wav 格式提取,但视频格式没有问题。任何格式都可以,只要我可以将音频提取到 wav 文件中。
目前我正在使用 Windows 窗体中的 Windows Media Player COM 控件来播放视频,但任何其他嵌入式播放器也可以。
关于如何做到这一点的任何建议? 谢谢
【问题讨论】:
我正在开发一个需要从视频中提取音频的应用程序。音频需要以 .wav 格式提取,但视频格式没有问题。任何格式都可以,只要我可以将音频提取到 wav 文件中。
目前我正在使用 Windows 窗体中的 Windows Media Player COM 控件来播放视频,但任何其他嵌入式播放器也可以。
关于如何做到这一点的任何建议? 谢谢
【问题讨论】:
如果您想使用 C# 执行此操作,请查看 NAudio library。它可以分析音频格式(如 FFMpeg)并提供音频流。这是one example。
样本片段:
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
}
【讨论】:
Here is a link 介绍如何使用 GraphEdit 提取音频,GraphEdit 是 DirectShow API 的前端 UI,因此您可以使用 API 完成所有功能。
您可以使用 DirectShow.NET liberty,它为托管世界包装了 DirectShow API。
【讨论】:
可能最容易将 ffmpeg 用于这种事情......
【讨论】: