我知道有一个与我类似的问题:从视频文件中提取 wav 文件 https://stackoverflow.com/questions/1010937/extract-wav-file-from-video-file
我是 C++ 新手,了解 COM 库 + 视频和音频需要 directX。我一直在寻找教程和示例代码,但收效甚微。
我的问题是如何对应用程序进行编码以获取视频文件(任何类型)并将提取的音频保存为应用程序中的 .wav,而不是使用其他应用程序(例如 graphedit 或 virtualdub)?
我将附议仅使用 ffmpeg 构建来执行音频提取的动议。它可以通过一个简单的命令来完成,而不是很可能使用数百行代码(如果您要检查处理不同视频格式和编解码器时可能发生的所有可能问题)。
ffmpeg -i video.avi -vn soundfile.wav
你可以使用 libavformat 和 libavformat(ffmpeg 后面的库)来做同样的事情,但是除非你需要在输出到 wav 之前对原始音频进行一些处理,否则除了知识之外什么也得不到。
ffmpeg 很好,因为可执行文件包含您可能需要的所有音频和视频解码器,因此该解决方案具有高度可移植性。你没有安装编解码器或任何东西。输入视频文件可以是 ffmpeg 支持的任何格式或编解码器,您不必费心在代码中对它们进行不同的处理。
在 C++ 中,您可以通过在代码中构建命令行字符串并从代码中启动该过程来调用 ffmpeg(作为 C++ 新手,您可能需要研究如何执行此操作,但这非常简单)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)