【问题标题】:How can i get the length of an IDR slice in H264 stream如何获取 H264 流中 IDR 切片的长度
【发布时间】:2013-12-17 13:45:18
【问题描述】:

请指导我解决此问题。

我已经解析了 h264 视频流并识别了帧 [I/P/B]。我已按照以下步骤操作。

• NAL 单元起始代码:00 00 01 X Y • X = IDR 图片 NAL 单位(25、45、65) • Y = 非 IDR 图片 NAL 单元(01、21、41、61); 01 = b 帧,41 = p 帧

现在我的问题是如何知道单个帧的长度,以便我可以将每个帧写入文件。请提供一些帮助。

问候, 飞溅

【问题讨论】:

  • 你找到答案了吗? szatmary 的回答是否被接受?
  • 非 IDR 图片 NAL 单元 21、61:它们是什么?

标签: parsing h.264 frames


【解决方案1】:

好的,所以您的源是附件 b 格式的基本流。基本上每个 NALu 都以一个起始码(2 个或更多 0x00 字节后跟一个 0x01 字节)开头。下一个字节包含类型(前 5 位)。剩下的就是有效载荷。 NALU 在遇到下一个开始代码时结束,或者您到达流的末尾。所以,要得到长度,你必须寻找下一个起始码并减去。

您可能会发现这篇文章很有用。 Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream

【讨论】:

  • 我无法打开博客文章。你能给我最新的文件链接吗?
  • 你能在这里看看我的新问题吗? stackoverflow.com/questions/34851457/…
  • 序列00 00 00 01 67 ... NALU类型SPS,但是你说的3-7位是NALU类型,不是真的。这不是 填充数据 (0x67 & 0xF1) 而是 SPS (0x67 & 0x1F)。
猜你喜欢
  • 2018-08-30
  • 1970-01-01
  • 2010-12-29
  • 2018-02-15
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多