Skip to content

Latest commit

 

History

History
42 lines (27 loc) · 1.49 KB

音视频.md

File metadata and controls

42 lines (27 loc) · 1.49 KB

采样

音频采样速率

例如现在设备的采样周期是8000(采样频率8000Hz),即1秒8000个采样,每次采样占8个比特,因此 8000*8 = 64000bit/s = 64kbit/s

RTP Timestamp的增长量

公式如下:

两帧之间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等)。如果不等量,可能会造成音质问题,如断断续续或者卡顿。

对应通话SDP信息设置项

a=ptime:20 // 媒体分组的时长(单位:ms),一个rtp包播放20ms 或 a=framerate:50\r\n // 也就是1s播放50个rtp包 相当于一个rtp包播放20ms

关于Asterisk SIP Info消息问题

发送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"))