资源描述:
《Opus_低延迟音频编解码器API手册中文翻译.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Opus:IETF低延迟音频编解码器:API和操作手册Opus简介Opus编解码器是专门设计用于互联网的交互式语音和音频传输。它是由IETF的编解码器工作组设计的,合并了Skype的SILK和Xiph.Org的CELT技术。Opus编解码器的设计目的是处理广泛的交互式音频应用程序,包括IP语音,视频,游戏内聊天,甚至远程现场音乐表演。它可以适用于从低码率窄带语音到非常高质量的立体声音乐。它的主要特点是:采样率从8至48kHz比特率从6kb/s到510kb/s对固定码率(CBR)和可变码率(VBR)都能支持从窄带到宽带的音频带宽支持语音和音乐支持单声道和立
2、体声支持多通道(最多255通道)帧规格从2.5毫秒到60毫秒良好的损失鲁棒性和包丢失隐藏性(PLC)(注:应是指丢包也不容易被发现)浮点和定点执行文档包括:OpusEncoderOpusDecoderRepacketizerOpusMultistreamAPIOpuslibraryinformationfunctionsOpusCustomOpusEncoder本节描述了Opus编码器OpusEncoder的过程和函数类型定义typedefstructOpusEncoderOpusEncoderOpusencoder状态.函数intopus_en
3、coder_get_size(intchannels)获得OpusEncoder结构的大小OpusEncoderopus_encoder_create(opus_int32Fs,intchannels,intapplication,int**error)分配和初始化encoder状态.intopus_encoder_init(OpusEncoder*st,opus_int32Fs,intchannels,intapplication)初始化一个以前分配的编码器状态。所指向的内存圣必须至少是opus_encoder_get_size()返回的大小.opus
4、_int32opus_encode(OpusEncoder*st,constopus_int16*pcm,intframe_size,unsignedchar*data,opus_int32max_data_bytes)对一个Opus帧进行编码.opus_int32opus_encode_float(OpusEncoder*st,constfloat*pcm,intframe_size,unsignedchar*data,opus_int32max_data_bytes)根据浮点输入对一个Opus帧进行编码.voidopus_encoder_destro
5、y(OpusEncoder*st)释放一个根据opus_encoder_create()已分配的OpusEncoder对象。intopus_encoder_ctl(OpusEncoder*st,intrequest,...)向一个Opus编码器执行一个CTL函数.详细描述本节描述了用于编码Opus的过程和函数。既然Opus是一个有状态的编解码器,编码过程始于创建一个编码器状态,用以下方法做到:interror;OpusEncoder*enc;enc=opus_encoder_create(Fs,channels,application,&error);从
6、这一点上,enc可以用于编码音频流。一个编码器状态在同一时间不得用于多于一个音频流。同样,编码器状态不能对于每帧重新初始化。当opus_encoder_create()为状态分配内存时,它也可以初始化预分配的内存:intsize;interror;OpusEncoder*enc;size=opus_encoder_get_size(channels);enc=malloc(size);error=opus_encoder_init(enc,Fs,channels,application);opus_encoder_get_size()返回编码器状态要求的
7、大小。注意,这段代码的未来版本可能改变大小,所以没有assuptions应该对它做出。编码器状态在内存中总是连续,复制它只要一个浅拷贝就足够了。使用opus_encoder_ctl()接口可以改变一些编码器的参数设置。所有这些参数都已有缺省值,所以只在必要的情况下改变它们。最常见的参数设置修改是:opus_encoder_ctl(enc,OPUS_SET_BITRATE(bitrate));opus_encoder_ctl(enc,OPUS_SET_COMPLEXITY(complexity));opus_encoder_ctl(enc,OPUS_SET
8、_SIGNAL(signal_type));在这里:bitrate(比特率)的