【问题标题】:Replace the audio stream of a video using NAudio使用 NAudio 替换视频的音频流
【发布时间】:2026-02-05 06:25:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# audio video naudio ms-media-foundation


    【解决方案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 并找到将视频与音频合并的命令。

    【讨论】: