【发布时间】:2014-02-11 03:38:16
【问题描述】:
让我记住一些关于 H264 RTP 数据包的事情。
如果您想观察以下句子的一些错误,请随意。
1) IDRs,也叫 I-Frames,即整个图像可以分成包。
2) 当我收到一个数据包并且它的“fragment_type == 28”(不仅如此,假设我真的得到一个片段)时,这意味着我有一个 IDR 片段。
3) 每个数据包都有一个由发射器生成的序列号。序列包遵循一个顺序:如果包A的序列号=20,那么发射器发送的下一个包是21,以此类推。
现在让我们来回答我的问题:
A) 如果我有一个 IDR 需要重建,我如何知道哪些数据包属于这个 IDR?让我举个例子: IDR 在数据包 A、B、C 和 D 中被分段。数据包 A 总是有他的序列号 6606(只是一个例子),因此 B 将有 6607 和 C 6608 和 D 6609 例如,或者序列号没有米?如果序列号没有变化,我假设我在数据包中有一个字段,上面写着“嘿!我是帧“HelloWorld”的一个片段。另一个数据包过来说“嘿!我也是框架“HelloWorld”的一个片段。但是其他数据包来了说“嘿!我不属于 HelloWorld 框架,我属于框架“HelloHell”。那么,显示 IDR 属于哪个框架的字段是什么?
B) 如何从数据包中提取 SPS 和 PPS?我阅读了很多关于此的主题,但我无法理解这些信息在哪个字节中。后来得到它,我怎样才能将这些信息发送给我的解码器?
C) 用户 Cipi,我请你帮我提供一些关于问题 B 的代码示例。伙计,你太有帮助了。在知道之前我所做的几乎所有事情都是因为你的帮助。你能帮助我吗?
谢谢大家!我正在努力使用我的软件从 IP 摄像机 (SONY SNC-EP580) 获取此流。
【问题讨论】: