首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当MPEG2流通过RTP进入MPEG-TS容器时,如何找到帧结束?

当MPEG2流通过RTP进入MPEG-TS容器时,如何找到帧结束?
EN

Stack Overflow用户
提问于 2012-12-16 05:02:15
回答 1查看 2.5K关注 0票数 0

我正在通过RTP接收MPEG2-TS流。但我找不到特定帧的结尾。当只有MPEG2流通过RTP到达时,则当存在任何帧的结尾时,RTP报头中的标记位被设置为1,但在这种情况下,标记位始终为0。有人能帮我吗?在MPEG2-TS的情况下,我怎样才能找到帧的结尾?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-17 14:18:28

根据RFC2250,在mpeg-ts的情况下,M比特应该指示帧的结束。(用于MPEG ES封装的3.3 RTP固定报头),但许多解码器可能没有将其放入报头中。

找到帧开始的唯一其它方式是解码188字节的mpeg-ts包的报头。mpeg-ts包含"Payload Unit start Indicator“。

所以你的算法会是这样的

  1. RTP数据包含整数个mpeg-ts数据包。
  2. 每个数据包以0x47

开始

  1. 检查每个数据包的“有效载荷单元开始指示符”字段如果是"payload unit start indicator
  2. 1“检查if PES or PSI
  3. 如果是PSI则忽略数据包并继续步骤1,否则转到下一步
  4. 对于PES数据包,如果其视频命中新帧,请检查"Stream id”。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13896174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档