h264拆包方法
可以通过生成SDP文件给播放器在指定端口接收数据播放,如果你不用动态调整编码器什么的就不用考虑另外发送RTCP.
而且RTCP必须自己实现RTSP服务结合起来用,没有实现RTSP服务,就谈不上实现RTCP.
具体H264字节流拆包和RTP封包方法如下:
如何把MPEG4(或H.264)的视频流拆分成一个个的RTP包?
MPEG-4和H.264拆分RTP包的方法原理基本上相同的,具体实现上还是有差别的,可以查看不同的RFC文档,H.264的是RFC3984。
一个rtp包的最大长度为多少,rtp包头信息怎么填,payload type等于多少?
一 个rtp包如果是经过UDP传输的原则上不要超过1460,
原因如下:RTP基于UDP之上的传输协议,而UDP属于运输层,我们知道以太网数据帧的长度 必须在46-1500字节之间,这是由以太网的物理特性决定的,这个1500字节被成为链路层的MTU(最大传输单元),去除IP数据报的首部20字节和 UDP首部的8字节,所以UDP数据报的数据区最大长度为1472字节,考虑到RTP包头的12个字节,这样RTP载荷的最大尺寸为1460字节。
如果要 封装进RTP载荷的数据大于1460字节,而且不在应用层数据装载进RTP分组之前进行载荷的拆分,这样就会产生大于IP网络MTU的分组。
如此一来底层 的协议(IP)将会对这种大的分组进行拆分,分为几个小于IP MTU尺寸的IP分组。这样就无法检测数据是否丢失,
原因如下:IP和UDP协议都没有提供分组到达的检测,如果拆分后第一个分组成功接收,而后续分组丢 失。由于第一个分组中包含完整的RTP头信息,而RTP头中也没有关于RTP载荷长度的指示,因此不能判读该RTP分组是否有丢失,而只能认为是完成接收 了,这样就会造成解码时的错误信息。
rtp头的信息就按照RFC标准填写。
payload type因为没有定义,所以可以是96-127之间的任意值.
RTCP包要不要我来发送,如何发送,什么时候发送,发什么内容??
如果用jrtplib会自动发送RTCP包。