作品编码定义:
opus_int32 opus_encode (OpusEncoder * st,
const opus_int16 * pcm,
int frame_size,
unsigned char * data,
opus_int32 max_data_bytes)
当指定frame_size需要将其设定为每在pcm
缓冲器中可用一个通道的样本数。
OPUS编解码器支持立体声和单声道信号,编码器的相应配置是channels
当您调用opus_encoder_create
函数时指定的参数。
您还需要了解OPUS编解码器支持的帧大小。它支持帧数为2.5,5,10,20,40或60ms的音频数据。
1毫秒的16kHz音频是16个样本(16000/1000)。因此,对于单声道可以指定frame_size设置为:
- 16 * 2.5 = 40(非常罕见)
- 16 * 5 = 80(罕见)
- 16 * 10 = 160
- 16 * 20 = 320
- 16 * 40 = 640
- 16 * 60 = 960
OPUS编解码器将不接受另一尺寸。处理1280个采样的缓冲区大小的最佳方式是分割四个20ms数据包或两个40ms数据包。
因此,您从缓冲区接收的一个缓冲区编码两个或四个数据包。