java rtp打包_多媒体开发之rtp打包---打包中的FU-A分包方式说明

本文介绍了Java中RTP协议的多媒体开发,特别是关于RTP打包中的FU-A分包方式。讲解了NALU单元的打包格式,包括单个NALU打包、分片打包的原理和流程,以及FU-A包的开始位S、结束位E和保留位R的设置。同时,文章探讨了码流管理机制,包括并发处理、线程管理和多级缓冲策略,确保视频数据的正确接收和解码,最终实现解码和播放的流程。
摘要由CSDN通过智能技术生成

继上篇rtp中的时间戳和负载类型之后,升入到了nalu的分片打包问题,这里做下笔记

(1)fu-a的打包格式

1.基于RTP协议的打包及解包

(1)单个NAL打包

H.264NALU单元常由[start code][NALU header][NALU payload]三部分组成,其中start code 用于标志一个NALU单元的开始,必须是“00000001”或者是“000001”,打包时去掉开始码,把其他数据打包到RTP包就可以了。

(2)分片打包

由于1500个字节是IP数据报的长度的上限,去除20个字节的数据报首部,1480字节是用来存放UDP数据报的。所以当一帧中的字节数超过这个数值时,我们必须将其分片打包。而且UDP在传输的过程中也要由包头开销,所以将RTP包的最大字节数定位1400字节。

需要分片的包格式有所区别,首先说明下分片的格式:

FU指示字节有以下格式:

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

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

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

|F|NRI| Type |

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

FU指示字节的类型28,29表示FU-A和FU-B。NRI域的值必须根据要分片的NAL单元NRI的值设置。

FU头的格式如下:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值