【问题标题】:Need help on handling MPEG4V1 data在处理 MPEG4V1 数据方面需要帮助
【发布时间】:2011-09-13 08:24:52
【问题描述】:

我需要获取大量 MPEG4V1Microsoft MPEG-4 VKI Codec V1位于数据包开头的数据由某些 DVR 设备发送)。

数据包结构如下所示:

  • 压缩的 MPEG4 数据
  • 长整数 - 事件和绊线的数量。
  • 长整数 - 事件数。
  • 事件 - 事件的顺序。
  • 长整数 - 绊线数。
  • Tripwire - 绊线序列。
  • 长整数 - 循环冗余码 (CRC)。

所以没有迹象表明如何知道 MPEG4 数据在哪里结束(或者那里有?), 我应该从哪里开始阅读这些额外的数据,例如“事件和绊线的数量”等等......

我上传了两个数据包,因此您可以看到实际数据的样子: recvData1.txt, recvData2.txt.

我尝试使用带有 avcodec_decode_video 函数的 FFmpeg 库解码这些数据包,并从我的 recvData 缓冲区末尾逐字节删除,以期获得任何结果,
但 FFmpeg 总是返回如下错误消息:

"[msmpeg4v1 @ 038865a0] 无效的起始码", “[msmpeg4v1 @ 038865a0] 标头损坏”。

在了解 MPEG4 的内部工作原理方面,我不是很好的专家, 但从错误消息来看,可以清楚地看到我在缓冲区开始时缺少一些用于解码的数据。

所以我不确定我在这里得到了什么部分/类型的 MPEG 数据..
也许它是某种 MPEG 的“帧”数据,它是“结束”指示或什么?

我什至将我的 recvData 缓冲区的开头与我在网络“http://www.trekmania.net/clips/video_clips4.htm”上找到的一些 MPEG4V1 编码视频文件进行了比较检查我的缓冲区的开头是否真的包含 MPEG 数据..而不是某种 DVR 供应商特定的东西..

我注意到大约有 20 字节的数据 (在我的数据包数据的开头,以及大约 180 字节之后的 .avi 文件中......) 看起来像某种标题或其他东西..

请查看此图片:“http://ggodis.gamedev.lt/stackOverflow/recvData.jpg”

也许有人知道这部分 MPEG4V1 数据代表什么?

附: ..我检查了收到的数据包的 CRC 值,它们是正确的..

【问题讨论】:

    标签: ffmpeg decoding mpeg-4


    【解决方案1】:

    我成功解码了我的数据包。我缓冲区开头的数据是“BITMAPINFOHEADER”。这就是我需要知道的全部内容。

    【讨论】:

      【解决方案2】:

      您在这里处理两个不同的事情:容器和编解码器。编解码器用于以某种数字形式对数据进行编码/解码(因此编码器解码器→编解码器)。所有变体中的 MPEG4 视频就是这样一个编解码器系列。

      您需要注意的另一件事是容器。 AVI 是一个容器,但还有许多其他容器。 MPEG2-TS、MPEG2-PS、MP4、MKV、MOV(Quicktime)、FLV、Ogg 等等。所有容器格式的共同点是,它们提供了用于存储和/或流式传输编解码器帧/数据包的框架。容器为您提供了在帧/数据包中寻址所需的信息。

      容器处理解复用器/多路复用器,简称“复用器”。

      请查看此图片:“http://ggodis.gamedev.lt/stackOverflow/recvData.jpg”

      真的吗?您知道使用十六进制编辑器来查找/操作 RAW 数据流吗?由于对 Unicode 复合代码点或类似的误解,在文本编辑器中打开它们可能会导致各种重要信息丢失。

      所以我不确定我在这里得到了什么部分/类型的 MPEG 数据.. 也许它是某种 MPEG 的“帧”数据,带有“结束”指示或其他什么?

      这看起来像是 MP4 容器文件的一部分。 MP4 是一种非常微妙的容器格式,它在很大程度上依赖于完整的标题。如果表头损坏,则无法正常播放。

      【讨论】:

      • 感谢 datenwolf 的回答。关于我的图像“recvData.jpg”,我只是厌倦了展示我的意思的本质。我没有处理我的任何 RAW 数据,我知道 HEX 编辑器,谢谢;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多