例如现在设备的采样周期是8000(采样频率8000Hz),即1秒8000个采样,每次采样占8个比特,因此 8000*8 = 64000bit/s = 64kbit/s
公式如下:
两帧之间RTP Timestamp的增量 = 时钟频率 / 帧率 或 两帧之间RTP Timestamp的增量 = 时钟频率 * frame_duration
frame_duration = 1 / 帧率
以G711为例,假如frame_duration为10ms,即10ms播放一帧音频数据,则帧率为1s/10ms = 100, 即每秒100帧,帧率为100,那么10ms的Timestamp增量 = 8000/100 = 80 或 8000 * 0.01 = 80
20ms的Timestamp增量 = 160 30ms的Timestamp增量 = 240 40ms的Timestamp增量 = 320(现为此)
若通过wireshark抓取音频数据,可以看到Timestamp 的间隔(差值)都是等量的(160, 320等)。如果不等量,可能会造成音质问题,如断断续续或者卡顿。
a=ptime:20
// 媒体分组的时长(单位:ms),一个rtp包播放20ms
或
a=framerate:50\r\n
// 也就是1s播放50个rtp包 相当于一个rtp包播放20ms
发送SIP INFO消息Asterisk服务器经常返回415 Unsupported media type, 查看源码(chan_sip.c handle_request_info函数)发现Asterisk只接收以下Content-Type
/* Need to check the media/type */
if (!strcasecmp(c, "application/dtmf-relay") ||
!strcasecmp(c, "application/vnd.nortelnetworks.digits") ||
!strcasecmp(c, "application/dtmf"))