【问题标题】:How to read audio and video packets from mp4 file如何从 mp4 文件中读取音频和视频数据包
【发布时间】:2015-08-20 09:27:18
【问题描述】:

我正在尝试用 c/c++(目标 c)编写代码来解析 mp4 文件中的音频和视频数据。 我知道 mp4 文件中的数据包含在 mp4 atom 下,但不确定如何分别解析出音频和视频数据。

提前感谢您的帮助。

【问题讨论】:

  • 想补充说mp4包含h264编码的视频和aac编码的音频。
  • 您在问题中提到了三种不同的语言——您实际打算使用哪一种?
  • 感谢您对这个问题表现出兴趣@PaulR 语言并不重要,我需要解析相同的逻辑。如果它是 c 语言,它也可以在其他语言上运行..
  • 好的 - 所以你不想为此使用库或 OS API - 你想从头开始写吗?
  • 基本上是的。我正在尝试进行 RTSP 广播,并且正在从 mp4 文件中读取数据。我在某处找到了逻辑,他们正在从 mp4 读取视频数据包并在 RTSP 上进行广播,但同样不适用于音频。所以需要一个相同的逻辑。

标签: audio video mp4 rtsp


【解决方案1】:

Mp4 格式相当复杂。我建议你使用图书馆。但是如果你不能使用库,或者只是想学习格式,那么你必须在根moov 框下解析大约十几个boxesatoms。那里的信息可用于在mdat 原子中查找帧。完整的规范编号为 ISO/IEC 14496-12,您应该可以在网上找到一份副本。

【讨论】:

  • 谢谢 szatmary.. 我添加了一个链接到上面的代码,其中 usr 已经解析了 mp4 容器的一些原子。但它仅适用于视频。它读取原子 avc1 和 avcC 以及一些信息(我不明白),然后跳转到 mdat elemet 并开始读取视频数据包。我不确定如何修改相同的代码以从同一文件中读取音频和视频数据。您能否告诉我在读取 mp4 文件 mdat 数据时如何区分音频数据和视频数据..
猜你喜欢
  • 2021-01-30
  • 2016-06-26
  • 1970-01-01
  • 2013-08-17
  • 2020-09-14
  • 2013-01-10
  • 2013-09-24
  • 2012-07-10
相关资源
最近更新 更多