对于C#项目,我正在试验ffmpeg以从视频文件(在Windows中)中提取.wav文件。 您可以通过在命令行上运行它来执行此操作:“ffmpeg -i inputvid.avi +'extra parameters'+ extracted.wav”。 这显然会将输入.avi文件中的音频提取到指定的.wav文件。将数据写入cmd到内存而不是文件,用C#抓住它#
现在,我可以轻松地在C#中运行此命令,以便创建所需的.wav文件。但是,我不需要这个wav文件留在硬盘上。出于性能方面的原因,如果ffmpeg可以将该文件暂时保存到内存中,那么该内存就可以在我的C#程序中使用。执行完程序后,不再需要.wav文件。
所以实际的问题是:我可以将输出文件从程序重定向到内存吗? 如果这是可能的,我该如何在C#中读取?
我知道这是一个长镜头,我是很怀疑的,如果它是可能的,但我总能问...
在此先感谢。
你有一个僵局。 [RedirectStandardOutput上的MSDN文档](http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx)详细解释了相互依赖关系,但结果是您需要清除在等待进程完成之前(使用WaitForExit)流(使用ReadToEnd)*。 – ladenedge 2010-06-07 16:06:20
谢谢,它现在可行! – Mee 2010-06-07 21:47:59