| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> AMR数据多帧封装成RTP数据 -> 正文阅读 |
|
[游戏开发]AMR数据多帧封装成RTP数据 |
AMR数据多帧封装在rtp净荷中 AMR在IP域中的净荷格式RFC3267/4867协议描述AMR编码在RTP中的载荷格式,是其在IP域的存在形式。 节省带宽模式
模式选定后,由于采样频率恒定,具体包的打包时长还是不变,不同速率只是净荷长度不一样,例如对于AMR模式0,其速率是4.75Kbit/s,净荷中包含的语音数据为95bits AMR的8种速率索引表如下图所示
±±±±±±+ |F| FT |Q| ±±±±±±+ F:用于标志是否最后一个帧,0表示最后1帧.如果是多帧复用才有Toc才会有多项,否则只有1项。 FT:标志对音帧语音编码模式或舒适噪志的模式,取值范围同CMR取值,FT=14 (SPEECH_LOST, only available for AMR-WB) and FT=15 (NO_DATA),FT=15表示没有当前帧没有净荷;取值10-13该帧要丢弃。 Q:指示帧质量,为0表示对应帧被破坏,1表示未被破坏;如果该帧已被破坏,那么可以通过直接丢弃该帧来处理。 净荷内容表就是对帧内容的数据格式说明 c)语音数据speech data 语音数据即为真正的语音帧或舒适噪声帧的数据,每帧数据的描述和ToC每一项对应起来,数据长度取决于对应模式ToC项中的FT标识的模式 下面给出示例: 示例: 单通道单帧 0 1 2 3
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | CMR=15|0| FT=4 |1|d(0) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | d(147)|P|P| ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | 单通道多帧 0 1 2 3
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | CMR=1 |1| FT=0 |1|1| FT=9 |1|1| FT=15 |1|0| FT=1 |1|d(0) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | d(131)| ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ |g(0) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | g(39)|h(0) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | h(176)|P|P|P|P|P|P|P| ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ 字节对齐模式Octet-aligned Mode a. 净荷头格式
±±±±±±±±± - - - - - - - | CMR |R|R|R|R| ILL | ILP | ±±±±±±±±± - - - - - - - CMR:同上; R:保留位,区分节省带宽模式,这些保留位作用之一就是字节对齐; ILL:可选,指示交错长度(取值为L,交错长度即为L+1); ILP:可选,交错块的索引,取值范围为0到ILL,超过这个范围,该帧块应被丢弃。 b. ToC ±--------------------+ | list of ToC entries | ±--------------------+ | list of frame CRCs | (optional)
组成同节省带宽模式 ToC项:在该模式下,6位ToC也需要2位补齐。 CRC:CRC校验位可选,如果带外信令协商需要校验,则每项对应每个语音数据进行8位长度的校验。 语音数据 同节省带宽模式,只是要求每帧必须补0对齐;对于多帧的净荷,可以和节省模式一样,一帧顺序排,也可以所有帧以字节为单位交错排序,尽量把各个帧错误敏感位排前面。 示例: 单通道多帧 0 1 2 3
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | CMR=6 |R|R|R|R|1|FT#1=5 |Q|P|P|0|FT#2=5 |Q|P|P| f1(0…7) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | f1(8…15) | f1(16…23) | … |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | … |f1(152…158) |P| f2(0…7) | ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | f2(8…15) | f2(16…23) | … |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+ | … |f2(152…158) |P| ±±±±±±±±±±±±±±±±±±±±±±±±+ 多通道 关于多帧复用 多帧复用为了降低带宽,减少网络传输的RTP包数,把多帧的数据打包在1个RTP包里面进行传输。净荷里面用ToC表来管理多帧数据,说明模式等内容,这样也可根据网络状况灵活改变多帧的速率,例如,多帧中每个帧的速率不一定要一样。 采用多帧复用要注意关注RTP包的大小、时戳是否正确 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 15:57:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |