当 NALU 的长度超过 MTU 时, 就必须对 NALU 单元进行分片封包. 也称为 Fragmentation Units (FUs). 
0 1  2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| FU indicator | FU header |

| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |

| FU payload | | |

| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| :...OPTIONAL RTP padding | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

H264码流 NAL HEADER格式

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|F|NRI|FU-Type     |    (28)

+---------------+

| FU header |

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|S|E|R| Type      |

+---------------+

同一个NALU分包后的FU indicator头、Type是完全一致的,FU header只有S以及E位有区别,分别标记开始和结束,RTP分包的序列号应该是依次递增的,且时间戳必须一致,负载数据为NALU包去掉1个字节的NALU头后对剩余数据的拆分,因为NALU头被拆分成了FU indicator和FU header,所以不再需要1字节的NALU头了。
1. 第一个FU-A包的FU indicator:F、NRI、Type应该为当前NALU头的F、NRI、Type,Type则等于28,表明是FU-A包。FU header生成方法:S = 1,E = 0,R = 0。
2. 中间的N个FU-A包(不是最后一个包),FU header应该为:S = 0,E = 0,R = 0。
3. 最后一个FU-A包FU header应该为:S = 0,E = 1,R = 0。

05-11 16:56