ts找 H264 I帧的完整性
来源:互联网 发布:xmind mac怎么安装 编辑:程序博客网 时间:2024/05/21 02:20
一个mpeg2 ts流封装的h264视频流,怎么区分这个ts流中i, p, b帧起始位置,以及帧长?
能从ts流中提取每个I帧,并且能识别I帧是否完整
初步想法:
1、找帧起始位置所在的ts包
找视频PID包,其中 Packet_start_code_prefix==0x000001 && stream_id==0xE0
2、判别帧类型
在这个PES视频包负载中 找nal起始标志 0x000001
找到后,然后获取Nal_unit_type
Nal_unit_type等于5为IDR帧(在网上查找IDR帧属于I帧的子集),怎么判别I,P, B帧
后面不知道怎么弄了,知识有限啊,请高手指点
------------------------------------------------------------------------------------------------------
有H264编码规范文档的,按照文档里的内容来解析NAL单元就知道了
------------------------------------------------------------------------------------------------------
H264没有帧的概念,I,P,B slice
------------------------------------------------------------------------------------------------------
没有I,P,B帧,有I,P,B slice
但是关键帧总该有吧。比如IDR帧应该是关键帧吧。
好像IDR帧后面紧接着就是序列参数集,然后是图像参数集,然后就是4个 I slice
能不能知道这个IDR帧的终止位置,并且有方法能确保这个IDR帧是完整的,证明在传输过程中没有丢包出现?
------------------------------------------------------------------------------------------------------
自顶一下,找I帧,验证完整性
-----------------------------------------------------------------------------------------------------
IPB帧(slice)是可以找到的,但完整性是无法验证的。要参考H264标准文档,先查找 00 00 00 01 xx,code = xx & 0x1f,当code=1或5时为帧头,然后通过UExpGolomb方法计算first_mb_in_slice和slice_type,slice_type就是帧类型,
-----------------------------------------------------------------------------------------------------
me(v) 映射指数Golomb熵编码
se(v) 有符号指数Golomb熵编码te(v) 截断指数Golomb熵编码
u(n)/u(v) 读进连续的若干比特,并把他们解释为无符号整数
ue(v) 无符号指数Golomb熵编码
UExpGolomb 计算ue(v)
ExpGolomb 计算se(v)
熵编码计算有什么资料可以参考么?
-----------------------------------------------------------------------------------------------------
H264标准文档中都有介绍
- ts找 H264 I帧的完整性
- ts的I帧
- ts的I帧
- TS的I帧
- h264 I帧的判断
- h264 I帧的判断
- H264 ES PS TS 流的区别
- H264 ES PS TS 流的区别
- H264 ES PS TS 流的区别
- H264 ES PS TS 流的区别
- H264 ES PS TS 流的区别
- H264的I帧的判断
- h264的p帧 i帧
- H264的I B P帧
- android解码判断H264的I帧
- H264 I帧判断
- TS流判断I帧
- TS流中 I,B,P帧的信息获取
- Android每日面试题4
- Android基础总结2 ---- Fragment与Activity
- JS取随机设置color颜色值
- STL分离编译遇到的问题
- JSON
- ts找 H264 I帧的完整性
- JD(3)
- 字符串 格式化 方法
- [linux]监控性能命令
- jsp判断本月有几个周五
- [hackerrank]Weekly Challenges - Week 11
- 滑动解锁 android Canvas自定义控件中硬件加速引起的canvas.clipPath问题
- c 管道读取
- 一份完整游戏大纲你要写些什么