博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转--RTP如何打包H264数据
阅读量:5165 次
发布时间:2019-06-13

本文共 850 字,大约阅读时间需要 2 分钟。

拿到H264的裸流数据是,一般码流结构是SPS,PPS,I帧,P帧......SPS,PPS,I帧,P帧...........。用RTP打包H264数据时,SPS和PPS可以不发,直接发I帧和P帧数据即可。还要看I帧和P帧有多大,如果小于MTU就直接加RTP包发送就可以,如果大于MTU就得分片了。具体的分片方法可以参考RFC3984中。    我用的FU-A,分片方式。    第一个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 1;E = 0;R = 0;Type = NALU 头中的 Type。   第二个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 0;R = 0;Type = NALU 头中的 Type。   第三个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 1;R = 0;Type = NALU 头中的 Type。    像I帧的数据格式一般是这样的00 00 00 01 65 × × × ×.............................。其中00 00 00 01是用来标识一个帧的,65是NAL unit头部,后面的数据是NAL unit数据。RTP发送的数据是00 00 00 01后面的.注意分片的时候分片单元的数据是从65后开始的,65是NAL unit头部,和分片单元头部有点关系,具体关系我上面已经写的很清楚了。

转载于:https://www.cnblogs.com/jrvin/archive/2011/10/26/2224839.html

你可能感兴趣的文章
listview初始化后仍为空
查看>>
无刷新分页
查看>>
SIFT算法
查看>>
git各种撤销操作
查看>>
每天努力一点之SQL
查看>>
UINavigationBar-使用总结
查看>>
夺命雷公狗jquery---11属性操作
查看>>
linux 常用命令
查看>>
display属性和属性值(18个属性值,常见面试题)
查看>>
微信小程序图片使用示例
查看>>
Ubuntu16.04+cuda8.0rc+opencv3.1.0+caffe+Theano+torch7搭建教程
查看>>
CSS基本相关内容--中秋特别奉献
查看>>
GitHub 优秀的 Android 开源项目
查看>>
让窗体自适应屏幕
查看>>
vim插件之marks
查看>>
常用 SQL 命令和ASP 编程
查看>>
win10的资源管理器,边框不见了
查看>>
CentOS 网络设置修改
查看>>
Bll
查看>>
面向对象编程(OOP)————修饰符
查看>>