使用 NAudio 替换视频的音频流

Posted

技术标签:

【中文标题】使用 NAudio 替换视频的音频流【英文标题】:Replace the audio stream of a video using NAudio 【发布时间】:2013-11-21 04:02:18 【问题描述】:

我有 2 个文件。两者的长度相同(以秒为单位):

    视频文件(H.264、.mov) 音频文件(PCM、.wav)

如何在我的 C# 应用程序中使用 NAudio .NET 库以文件 #2 的音频覆盖文件 #1 的音频?我想将最终结果作为新的视频文件写入磁盘。

我相信使用 NAudio 1.7 的媒体基础功能可以做到这一点,但我不知道如何修改视频文件的音频流并重新保存视频。

【问题讨论】:

【参考方案1】:

恐怕这在 NAudio 1.7 中是不可能的。 NAudio 为大部分 Media Foundation API 提供了互操作包装器,但 MediaFoundationReaderMediaFoundationEncoder 类的重点仅在于音频。 Media Foundation 应该可以,因此如果您可以找到使用 MF API 执行此操作的 C++ 示例,您可以使用 NAudio 的互操作包装器在 C# 中重新创建它。或者,您可以尝试使用不同的托管媒体基础库,例如 Media Foundation .NET

【讨论】:

我很高兴我问了!除了我很难确定 API 的功能之外,感谢您在 NAudio 上所做的出色工作。【参考方案2】:

您可以使用 FFMPEG 来做到这一点。从 c# 调用 FFMPEG 并找到将视频与音频合并的命令。

【讨论】:

以上是关于使用 NAudio 替换视频的音频流的主要内容,如果未能解决你的问题,请参考以下文章

naudio 音频流到 html / 网页

无法播放用 naudio 录制的音频流

从 NAudio 访问 WPF MediaElement 声音流

无法使用 NAudio 获取音频的波形图像

如何使用内存流、NAudio 和 LameMP3 将音频 aiff 转换为 MP3

我可以同时从音频流缓冲区写入和播放(在 NAudio 中)吗?