美文网首页
Qt截屏 X265lib编码 rtsp请求 rtp流发送 (r

Qt截屏 X265lib编码 rtsp请求 rtp流发送 (r

作者: 随你说 | 来源:发表于2020-01-12 18:02 被阅读0次

\color{rgb(255,0,0)}{如果你不能证明,请不要写出来!}
\color{rgb(255,120,120)}{ipone:18201558276}
\color{rgb(120,120,120)}{rtp在rtsp协议组中才是真正负责流数据发送的}
\color{rgb(120,120,120)}{rtp发送的是x265编码后的nal包,那么什么是nal?}
我们把x265编码后的数据称作一个nal包.因为交换机的MTU一般为1500大小,也就是说如过一个数据包大小超过1500就应该对这个数据进行切分.切分后的数据发送到客户端是无法识别的,所以我们需要对切分的数据包添加头部标识,让客户端有标识可以识别这是个什么数据包.这就叫x265 的 nal fu分包.
\color{rgb(200,200,0)}{我们从nal分包理论开始:}
nal头:

2020-01-12 16-32-02屏幕截图.png
F位: 16位只能为0;
Type:7位nal类型位; 
LayerId 6位:保留位值为0;
TID:为0是非法的;

fu切片:

2020-01-12 17-26-18屏幕截图.png
PayloadHdr :16位 值为49表示fu分包
Fu head: 8位 如下图
2020-01-12 17-03-07屏幕截图.png
S位:第一个fu分片时为1;
E位:最后一个fu分片时为1,其余分片为0;
FuType:原来的nal type值;

\color{rgb(200,200,0)}{终于可以讨论rtp头了,如下图:}

2020-01-12 17-46-47屏幕截图.png
可以看出rtp头是4*32=128 bit;
v:版本号2位,现在是2版也就是0b10;
P:位1位 0b0
X:位1位 0b0
M:位1位 一组gop最后一包时设置1
PT:位8位 h265/h264值为96
sequence number: 16位技术器,fu分片时从第一个分片到最后一个分片的值不变.换句话说就是每一帧自增1;
timestamp:媒体时间戳算法为:波特率/每秒帧数*当前帧数.
SSRC:唯一标识_可能不对但是并没有影响到我的需求
CSRC:唯一标识_可能不对但是并没有影响到我的需求


代码:
https://github.com/wangqinfeng511/x265_encoder

相关文章

网友评论

      本文标题:Qt截屏 X265lib编码 rtsp请求 rtp流发送 (r

      本文链接:https://www.haomeiwen.com/subject/qytwactx.html