C#中的Mux音频和视频

时间:2014-03-08 01:06:32

标签: c# .net ffmpeg webm matroska

我正在寻找一种方法将单独的音频和视频流合并到一个容器中。

具体来说,我有VP8视频(webm容器)和16位PCM音频(wav容器),我想将它组合成一个Matroska容器。

到目前为止,我可以通过将流保存到文件来实现这一点,并通过使用生成我需要的结果的Process API调用ffmpeg.exe,但我更喜欢不依赖于保存中间文件的解决方案到磁盘或要求ffmpeg.exe在服务器上。任何帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您想避免其他过程,则需要托管的Matroska / WebM库,或者至少需要托管某个本机库的包装器。我不知道有什么存在/是最新的。几年前我开始写一篇,但从未完成它。

在启动过程时,实际上并不需要将文件保存到磁盘",因为您可以使用命名管道,其中"看起来像磁盘上的文件" ;,但实际上只是一个内存中值的接口 - 所以你可以直接与ffmpeg / mkvmerge共享内存,通过传递管道的名称来代替常规文件名。虽然不能在服务器上使用二进制文件,但无法帮助解决问题。