ffmpeg音频编码

时间:2021-10-03 07:29:07

在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存。

但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_get_buffer_size函数返回的大小。以下是几点注意的

1.

m_pFrame = av_frame_alloc();
m_pFrame->format = ffSampleFormat;
m_pFrame->nb_samples = nSampleRate;//帧的大小

2.

m_nBufferSize = av_samples_get_buffer_size(NULL, channels, nSampleRate, ffSampleFormat, 1);

音频的缓存大小就是m_nBufferSize 。

反正按上面的方法是解决了播放问题。如果还有其它办法可留言,欢迎大虾们指教。谢谢。

有几点疑惑还请大虾知道的指点一下。当我调用avcodec_open2函数后,AVCodecContext里面的frame_size依旧是0???谢谢。