qq364530507

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507  发布于  2016-12-08 13:04:57
采纳率 0%
23个问答
2648

请教HI3516C做流视频关于H.264 RTP封包与拆包的问题

 
从VENC出来的数据就是NAL单元,其结构如下
[START CODE] +[NAL HEADER] +[NAL PLAYLOAD]
现在对这个数据进行封包
1.如果这个NAL单元小于MTU(1400),则直接加上12个字节的RTP HEADER就行了
应该
【RTP HEADER】+[NAL HEADER] +[NAL PLAYLOAD]这样进行传送对吧

2.如果是NAL单元大于MTU(1400),则进行FU_A分包
RTP数据结构为
[RTP HEADER] + [FU INDICATOR] + [FU HEADER] +[NAL PLAYLOAD]

这个是标准的协议,但是我这里有一个可以正常使用的RTSP服务器(HI3518+0V9712),我看了下封包的过程,组合的包对应上面两种情况为:
1.【RTP HEADER】+[NAL HEADER2]+[START CODE] +[NAL HEADER]+[NAL PLAYLOAD]
2.【RTP HEADER】+[FU INDICATOR2]+[FU HEADER2]+[START CODE] +[NAL HEADER]+[NAL PLAYLOAD]

其中构建的[NAL HEADER2]和[FU INDICATOR2]都是F =0;NRI=0 LTYPE=0 这样的
关键是这个还能正常播放,我不明白为什么,我修改成标准的反而不行了,什么原因
下面给出用wireshark转的包:
第一个UDP包:


这个是分片包
分片开始:

分片结束:
我来回答
回答3个
时间排序
认可量排序

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-12-08 13:15:07
认可0
可以看到,首先第一个UDP 包
数据为:
{80,e0,00,00,00,49,a9,09,00,00,00,0a,00,00,00,00,01,67.....}

首先前12个字节是RTP HEADER,没有问题
第13个字节是00,对应前面的NAL HEADER2,就是把F ,NRI ,TYPE都设置为0了
第14~17个字节为00,00,00,001是start code
第18个字节是 67,其实是VENC编码出来的NAL HEADER
其中67二进制表示为
0110,0111;对应F为0,NRI为110;TYPE为7,对应下为一个SPS包

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-12-08 13:30:15
认可0
再看分片的情况
分片开始数据位
{80,60,00,4c,,00,4c,01,ed,00,00,00,0a,1c,80,00,00,00,00,01,61}
前12个字节还是nal header
第13个字节为1c
第14个字节为80
15字节~18为start code {00 00 00 01}
第19个字节为61是原始NAL头

其中13 14字节为
0001,1100,1000,0000
即FU INDICATOR中F NRI 为0 ,00,type为11100即28
FU HEADER中SER 为100,代表是开始的一个分片,TYPE为00000

大家可以看出来这个没有按照标准的格式来构建数据,标准的化FU INDICATOR中的高三位应该死NAL HEADER中的高三位
FU HERDER中的低5位应该是NAL HEADER的TYPE,即61中0110,0001的00001
即标准应该FU INDICATOR +FU HEADER为
0111,1100,1000,0001
7 c 8 1


我不明白的是为什么这样的数据结构可以正常播放呢???用的VLC播放器可以,使用LIVE555开发的客户端也是可以的,原因何在

qq364530507

0个粉丝

23

问答

0

专栏

0

资料

qq364530507 2016-12-08 13:47:00
认可0
我现在发现那个NAL HEADER2 随便赋值都可以正常播放,求解释
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区