编码音频ffmpeg c ++,在输入和输出之间使用不同数量的样本

时间:2015-12-03 20:29:43

标签: c++ audio encoding ffmpeg

我正在尝试制作一个音频编码器来编码实时流。我从webrtc源获取音频流。源音频缓冲区的属性是(我不能改变它):

return +(a.value > b.value) || +(a.value === b.value) - 1;

我正在使用MP2编解码器对音频进行编码。它期望音频样本数为1152(CAN' T CHANGE THATER),这与源(480)不同

我使用以下方式生成音频帧:

number of samples: 480 
sample size: 2 bytes 
sample rate: 44100Hz 
number of channels: 1

我正在接受#34;切断"声音。据我所知,这是因为每帧中样本数量的差异。

有没有办法以某种方式填满整个画面(1152个样本)?我可以对此直播进行编码吗?

感谢

1 个答案:

答案 0 :(得分:1)

填充缓冲区,直到获得必要数量的样本,然后对缓冲区进行编码。使用余数来启动下一个缓冲区。