1、采樣率約束:
輸入信號的采樣率(Hz),必須是8000、12000、16000、24000、或48000。
OpusEncoder* opus_encoder_create(opus_int32 Fs, int channels, int application, int *error);
函數參數中的Fs就是采樣率。
2、幀長約束:
opus為了對一個幀進行編碼,必須正確地用音頻數據的幀(2.5, 5, 10, 20, 40 or 60 ms)來調用opus_encode()或opus_encode_float()函數。
比如,在48kHz的采樣率下,opus_encode()參數中的合法的frame_size(單通道的幀大小)值只有:120, 240, 480, 960, 1920, 2880。即:
frame_size = 采樣率 * 幀時間。
因為需要滿足幀時間長度為10,20,40,60ms這些才能編碼opus,因而需要對輸入數據進行緩沖裁剪
3、兼容opus的容器格式:
有ogg,ts,mkv。但ts無法播放,mkv只能foobar播放,ogg能用foobar,vlc播放。因而不再考慮opus合成到ts