将音频和视频文件合并为一个 [C++] [关闭]
Posted
技术标签:
【中文标题】将音频和视频文件合并为一个 [C++] [关闭]【英文标题】:Merging audio and video files into one [C++] [closed] 【发布时间】:2014-01-02 15:10:18 【问题描述】:我的 C++ 应用程序使用 openframeworks 以 .mov 格式从网络摄像头录制视频,并使用第 3 方应用程序将应用程序声音录制到单独的 .wav 文件中。 在执行结束时,我需要将视频和音频文件合并为一个。是否有任何库或 API 可以做到这一点?
不胜感激,谢谢!
【问题讨论】:
ffmpeg
是您可以研究的一种工具。还有libavcodec
ffmpeg
使用。但是您需要的只是“混合”(将流打包到容器中),而不是“编码”。 ffmpeg
可以做到这一点,但我不知道怎么做(如果它为此使用 libavcodec
)。
刚刚发现ffmpeg
用来复用的库叫做libavformat
。这似乎是这项任务的解决方案。
我会调查的,非常感谢 :)
【参考方案1】:
类似于问题here,以下引用自那里:
获得单独的音频和视频文件后,您可以使用称为muxing 的技术将它们组合起来。有很多方法可以做到这一点。我使用VirtualDub 来满足我的大部分复用需求,尽管它只是Windows(不确定这是否是一个问题)。我知道ffmpeg 也能够复用(通过命令行界面),我不记得命令是什么。还有 mplayer 和许多其他程序可以做到这一点。
编辑:ffmpeg
的两种使用方式:
使用C/C++
API:查看以下优秀的 ffmpeg 教程
https://github.com/chelyaev/ffmpeg-tutorial.
https://github.com/phamquy/FFmpeg-tutorial-samples
使用系统调用: 查看here 获取有关如何合并音频和视频文件的脚本源代码(命令)。
【讨论】:
感谢您的回答。要求您向我展示一些使用 VirtualDub 执行此任务的代码 sn-p 会很重要吗? 对不起,刚刚才意识到最初写这个答案的人不是你!我去看看,谢谢 @PedroBatista 我认为ffmpeg
是更好的选择,因为VirtualDub
是一个应用程序,可能不适合在C++
中使用。
那么,要在代码中做到这一点,我必须使用系统编写 ffmpeg 命令行输入,对吗?
是的,我想是的。我已经添加了有关合并音频/视频文件所需的详细命令的链接。以上是关于将音频和视频文件合并为一个 [C++] [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 MediaRecorder 将音频和视频流合并为一个文件 [重复]