- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
低延迟音频编解码器API手册中文翻译69页
Opus:IETF低延迟音频编解码器:API和操作手册
Opus编解码器是专交互式语音和音频传输它是由IETF作组Skype的SILK和Xiph Org的。
编解码器的设计目的是处理广泛的交互式音频应用程序,包括IP语音,视频,游戏内聊天,甚至远程现场音乐表演。它可以从低码率窄带非常高质量的立体声音乐。它的主要特点是:
采样率从8至48 kHz
对固定码率(CBR)和可变码率(VBR)
从窄带音频
支持语音和音乐
支持单声道和立体声
支持多通道(255通道)
帧从2.5毫秒到60毫秒
好损失鲁棒性和包丢失隐藏(PLC)(注:应是指丢包也不容易被发现)
浮点和定点
文档:
Opus Encoder
Opus Decoder
Repacketizer
Opus Multistream API
Opus library information functions
Opus Custom
Opus Encoder
本节描述了过程和函数
typedef struct OpusEncoder? OpusEncoder ? Opus encoder 状态. 函数
int? opus_encoder_get_size (int channels) ? 获得 OpusEncoder结构的大小 OpusEncoder *? opus_encoder_create (opus_int32 Fs, int channels, int application, int *error) ? 分配和初始化 encoder状态. int? opus_encoder_init (OpusEncoder *st, opus_int32 Fs, int channels, int application) ? 初始化一个以前分配的编码器状态所指向的内存圣必须至少opus_encoder_get_size()返回的大小. opus_int32? opus_encode (OpusEncoder *st, const opus_int16 *pcm, int frame_size, unsigned char *data, opus_int32 max_data_bytes) ? Opus帧进行编码. opus_int32? opus_encode_float (OpusEncoder *st, const float *pcm, int frame_size, unsigned char *data, opus_int32 max_data_bytes) ? 根据浮点输入对一个 Opus帧进行编码. void? opus_encoder_destroy (OpusEncoder *st) ? 释放一个根据opus_encoder_create()已分配的OpusEncoder 对象。 int? opus_encoder_ctl (OpusEncoder *st, int request,...) ? 向一个Opus编码器执行一个 CTL 函数.
详细描述
本节描述了用于编码Opus的过程和函数。
既然Opus是一个有状态的编解码器,编码过程始于创建一个编码器状态,用以下方法做到:
int error;
OpusEncoder *enc;
enc = opus_encoder_create(Fs, channels, application, error);
从这一点上, enc可以用于编码音频流。一个编码器状态在同一时间不得用于一个流。同样,编码器状态不能对于每帧重新初始化。
opus_encoder_create()为状态分配内存时,它也可以初始化预分配的内存:
int size;
int error;
OpusEncoder *enc;
size = opus_encoder_get_size(channels);
enc = malloc(size);
error = opus_encoder_init(enc, Fs, channels, application);
opus_encoder_get_size()返回编码器状态要求的大小。注意,这段代码的未来版本可能改变大小,所以没有assuptions应该对它做出。
编码器状态在内存中总是连续,一个浅拷贝
使用opus_encoder_ctl()接口可以改变一些编码器的参数设置。所有这些参数都已有缺省值,所以只在必要的情况下改变它们。最常见的参数设置修改是:
opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate));
opus_encoder_ctl(enc, OPUS_SET_COMPLEX
您可能关注的文档
最近下载
- 中国能源大数据报告(2025).docx VIP
- Espressif 系列:ESP32 (适用于多媒体设备)_(17).ESP32图像处理与识别.docx
- 第2课+树立科学的世界观+第一框(教案)【中职专用】2024-2025学年中职思想政治《哲学与人生》(高教版2023基础模块).docx VIP
- 《公安机关人民警察内务条令》解读.pptx VIP
- 钢结构金属屋面及玻璃采光顶施工方案.doc VIP
- L3N型驱动器简易说明书_第1版.pdf VIP
- 从毕业生的现状谈中职语文的改革.docx VIP
- 公安机关人民警察内务条令解读ppt课件.pptx VIP
- 雅马哈stagepas_600bt使用说明书.pdf
- DB15∕T 3841-2025 风力发电机组消防系统技术规范.docx VIP
文档评论(0)