G711编码,有两种G711A/G711U,主要在安防中应用,是一帧波形编码的音频数据,只是将PCM压缩一半数据量。一般G711,采样率8000,通道数1。所以G711中1B就是一个样本数据。G711打包RTP非常简单,只要在G711数据前加上RTP头即可。G711没有想AAC那样,按照帧一帧一帧发送,而是设定一个打包频率,打包频率有10ms,20ms,30ms,40ms 等。如40ms的打包频率,1S打包25帧,1S需要发送8000个样本,所以一帧需要8000/25=320个样本,RTP时间戳增量绝对值是320/8000S,协议要求以采样率作为时钟频率,所以RTP时间戳为 (320/8000)*8000。
负载类型定义如下:
enum RTP_PAYLOAD_TYPE
{
RTP_PAYLOAD_TYPE_PCMU = 0,
RTP_PAYLOAD_TYPE_PCMA = 8,
RTP_PAYLOAD_TYPE_JPEG = 26,
RTP_PAYLOAD_TYPE_H264 = 96,
RTP_PAYLOAD_TYPE_H265 = 97,
RTP_PAYLOAD_TYPE_OPUS = 98,
RTP_PAYLOAD_TYPE_AAC = 99,
RTP_PAYLOAD_TYPE_G726 = 100,
RTP_PAYLOAD_TYPE_G726_16 = 101,
RTP_PAYLOAD_TYPE_G726_24 = 102,
RTP_PAYLOAD_TYPE_G726_32 = 103,
RTP_PAYLOAD_TYPE_G726_40 = 104,
RTP_PAYLOAD_TYPE_SPEEX = 105,
};
RTP打包格式