RTP载荷G711A/G711U/PCM/G726音频

《音视频应用开发系列文章目录》

编码RTP over G711A/G711U/PCM音频的大致过程

1.添加RTP12字节的头

2.添加payload(G711A/G711U/PCM/G726的真实数据)

RTP打包图

RTP载荷G711A/G711U/PCM/G726音频_第1张图片

伪代码

void rtp_send_g711(char *data, int len){
	
	char buf[MTU];
	// fix buf[0~11] for rtp head
	memcpy(&buf[0], &rtp_head, 12); 
	// fix nalu data
	memcpy(&buf[12], data, len);
	rtp_send(buf, len + 12);
}

RTSP->SDP

G711A:
v=0
o=username 1919893795 1 IN IP4 
s=audio
i=
c=IN IP4 0.0.0.0
t=0 0
m=audio 0 RTP/AVP 8
a=rtpmap:8 PCMA/8000/1
a=control:track1
a=sendonly

G711U:
v=0
o=username 13293471 1 IN IP4 
s=audio
i=
c=IN IP4 0.0.0.0
t=0 0
m=audio 0 RTP/AVP 0
a=rtpmap:0 PCMU/8000/1
a=control:track1
a=sendonly

G726:

v=0
o=username 990373985 1 IN IP4 
s=audio
c=IN IP4 0.0.0.0
t=0 0
a=range:npt=0-
a=sendonly
a=control:*
m=audio 0 RTP/AVP 21
a=rtpmap:21 G726-32/8000/1  // G726-xx可取 16 24 32 40具体情况更改SDP
a=control:track1

 

 

你可能感兴趣的:(音视频应用开发,嵌入式,Linux,ARM)