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

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

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

1.添加RTP12字节的头

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

RTP打包图

伪代码

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

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果在Android开发中遇到了"Unsupport mime 'audio/g711-alaw'"的错误提示,这是由于Android系统本身并不支持G711AG711U音频格式,而只支持G711标准的PCM编码格式。因此,如果要在Android中使用G711AG711U音频格式,需要使用第三方的库进行编解码。 这里推荐使用JRTPLIB库,它是一个开源的RTP协议库,支持G711AG711U、G722、L16等音频格式的编解码。使用JRTPLIB库可以方便地实现RTP协议的编解码,并支持自定义的音频格式。 以下是使用JRTPLIB库进行G711A编解码的示例代码: ```java // 初始化JRTPLIB库 jrtplib::RTPSessionParams sessionParams; sessionParams.SetOwnTimestampUnit(1.0/8000.0); jrtplib::RTPSession rtpSession; rtpSession.Create(sessionParams); // 创建G711A编解码器 jrtplib::G711Codec g711Codec; // 编码 unsigned char encodedData[1024]; int encodedDataLen = 0; g711Codec.Encode(g711Data, g711DataLen, encodedData, 1024, encodedDataLen); // 解码 unsigned char decodedData[1024]; int decodedDataLen = 0; g711Codec.Decode(encodedData, encodedDataLen, decodedData, 1024, decodedDataLen); ``` 在上述代码中,首先使用jrtplib::RTPSessionParams对象设置了音频采样率,并创建了一个RTPSession对象。然后使用jrtplib::G711Codec对象进行G711A的编解码操作。 需要注意的是,JRTPLIB库需要在C++环境下编写,并使用JNI技术将C++代码与Java代码进行交互。因此,使用JRTPLIB库需要一定的C++编程经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值