二. opus 编码器使用
1 编码器 Encoder
enc = opus_encoder_create(48000, 1, OPUS_APPLICATION_AUDIO, &err); //OPUS_APPLICATION_VOIP void / OPUS_APPLICATION_AUDIO 对大多数非语音信号,如音乐,在给定比特率条件下提供了最高的质量
opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); //复杂性)是一个值从 1 到 10,1 最低,10 最高,值越大越复杂
opus_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(6));
opus_encoder_ctl(enc, OPUS_SET_BITRATE(6000)); //比特/秒(b/s)
opus_encoder_ctl(enc, OPUS_SET_SIGNAL(signal_type)); //(信号的类型)包括 OPUS_AUTO (缺省), OPUS_SIGNAL_VOICE, or OPUS_SIGNAL_MUSIC。
data_len = opus_encode(enc, pcm1, 960, data, 2000);
2 解码器
OpusDecoder* opus_decoder_create ( opus_int32 Fs, int channels, int * error ) //创建
int opus_decoder_ctl(OpusDecoder *st, int request, ...) //控制
int opus_packet_parse ( const unsigned char * data,
opus_int32 len,
unsigned char * out_toc,
const unsigned char * frames[48],
short size[48],
int * payload_offset
)
//other
3. Repacketizer
可将多个包 Opus 合并成一个包,或将以前合并的包分离成多个 Opus 包。
只有在所有的帧都有相同的编码模式、带宽、帧大小,并且合并后的包总的时长不超过 120 毫秒,合并有效的包才能成功。
4. Opus Multistream API
Multistream API 允许将多个 Opus 数据流组合成一个包,能够支持多达 255 通道。
posted on 2023-01-03 09:19 WillingCPP 阅读(824) 评论(0) 收藏 举报
浙公网安备 33010602011771号