将pcm编码为acm时遇到问题
使用AV_CODEC_ID_MP2编码后音频使用vlc不能够播放,使用AV_CODEC_ID_AAC编码器,使用这个编码器遇到问题 specified sample format s16 is invalid or not supported
//AVCodecID codec_id = AV_CODEC_ID_MP2;
AVCodecID codec_id = AV_CODEC_ID_AAC;
这是说找不到AV_SAMPLE_FMT_S16这个,这时我们需要安装fdk-aac(可以自行百度下载安装下),安装之后需要重新编译ffmpeg
./configure --enable-libass --enable-libfreetype --enable-libfontconfig --enable-libfribidi --enable-shared --disable-yasm --enable-libx264 --enable-libfdk-aac --enable-nonfree --enable-gpl --enable-pic --enable-shared --prefix=/usr/local/
主要是--enable-libfdk-aac --enable-nonfree --enable-gpl三个,接着
make
sudo make install
在代码中使用下面的函数代替上面的函数
// pCodec = avcodec_find_encoder(codec_id);
pCodec = avcodec_find_encoder_by_name("libfdk_aac"); //指定使用文件编码类型
网友评论