rtp h264注意点(FU-A分包方式说明)
来源:互联网 发布:天猫双十一直播数据 编辑:程序博客网 时间:2024/06/05 19:20
之前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264。但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好)。
- 关于时间戳,需要注意的是h264的采样率为90000HZ,因此时间戳的单位为1(秒)/90000,因此如果当前视频帧率为25fps,那时间戳间隔或者说增量应该为3600,如果帧率为30fps,则增量为3000,以此类推。
- 关于h264拆包,按照FU-A方式说明:
1)第一个FU-A包的FU indicator:F应该为当前NALU头的F,而NRI应该为当前NALU头的NRI,Type则等于28,表明它是FU-A包。FU header生成方法:S = 1,E = 0,R = 0,Type则等于NALU头中的Type。
2)后续的N个FU-A包的FU indicator和第一个是完全一样的,如果不是最后一个包,则FU header应该为:S = 0,E = 0,R = 0,Type等于NALU头中的Type。
3)最后一个FU-A包FU header应该为:S = 0,E = 1,R = 0,Type等于NALU头中的Type。
因此总结就是:同一个NALU分包厚的FU indicator头是完全一致的,FU header只有S以及E位有区别,分别标记开始和结束,它们的RTP分包的序列号应该是依次递增的,并且它们的时间戳必须一致,而负载数据为NALU包去掉1个字节的NALU头后对剩余数据的拆分,这点很关键,你可以认为NALU头被拆分成了FU indicator和FU header,所以不再需要1字节的NALU头了。 - 关于SPS以及PPS,配置帧的传输我采用了先发SPS,再发送PPS,并使用同样的时间戳,或者按照正常时间戳增量再或者组包发送的形式处理貌似都可以,看播放器怎么解码了,另外提一下,如果我们使用vlc进行播放的话,可以在sdp文件中设置SPS以及PPS,这样就可以不用发送它们了。
- 使用VLC播放时,sdp文件中的分包模式选项:packetization-mode=1,否则有问题。另外sdp里面设置的编码type必须和rtp包中的一致。
0 0
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- rtp h264注意点(FU-A分包方式说明)
- FU-A分包方式说明
- h264 rtp FU-A
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- poj 1753
- POJ1088
- java不求有功,但求无过—异常处理
- Qt实现窗口拖动
- JAVA中管道通讯(线程间通讯)例子
- rtp h264注意点(FU-A分包方式说明)
- 笔记62--WindowManager
- UVA10047
- 分解质因数
- 高斯公式
- spfa算法详解
- 不可不知的DIP、IoC、DI以及IoC容器
- 构造函数和析构函数为何没有返回值
- DataGridView 合并单元格