c++ - 使用带有 vcopy/acopy 的 libavformat 多路复用 H.264 Annex B 和 AAC 流

标签 c++ ffmpeg h.264 aac libavformat

我正在对来自 IP 摄像机的视频 (H.264) 和音频 (AAC) 进行一些集成。

我取得了一些进步,我可以单独存储视频和音频流,并能够使用 VLC 播放器播放它。 H.264 以 Annex B 格式存储,音频使用 adts 格式文件。

我现在正尝试在不进行任何解码或编码的情况下将流复用到 MP4 文件中,但到目前为止还没有设法找到答案。

我可以使用 ffmpeg 手动执行此操作: ffmpeg -i recording.h264 -i recording.aac -vcodec copy -acodec copy -absf aac_adtstoasc 录音.mp4

如何使用 C++ 中的 ffmpeg 库执行此操作?

最佳答案

查看 muxing sample ;关键是跟踪您的音频/视频时间戳并使用 av_interleaved_write_frame 及时写入下一个。

关于c++ - 使用带有 vcopy/acopy 的 libavformat 多路复用 H.264 Annex B 和 AAC 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239124/

相关文章:

C++ WINAPI 在挂载的 VHD 上创建多个分区

c++ - 如何在 C++ 中使用迭代器进行打印?

c++ - 我认为下面的陈述不正确或者我遗漏了什么?

c - SDL Audio - 只播放静态噪音

flash - MP4 视频略微异步 - 但仅在初始播放时

c# - 如何在 .NET 中安装 H.264 编解码器?

c++ - 使用assimp加载mtl颜色

c - ffmpeg 与 CodeBlocks 的链接错误

FFMPEG 音频过滤器/设置交叉淡入淡出,但只有第一个文件变得安静

video - H.264 视频和 MPEG-4 视频有什么区别?