一、aac编码
输入raw音频编码为AAC
ffmpeg -i input.wav -acodec aac -y input.aac
通过-acodec来指定音频编码器(视频编码器为-vcodec),也可以使用-c:a来指定音频编码器;
ffmpeg工具默认的aac编码器为aac。也就是说缺省-acodec aac则默认的编码器是aac。在编码aac的过程也可以设置音频的参数,比如码率、通道数、采样率等;如下;
ffmpeg -i input.wav -acodec aac -ar 44100 -ac 2 -ab 128k -y input.aac
参数-ar来设置音频的采样率44100(如果输入音频的采样率不是-ar指定的44100值则会进行音频重采样为44100);-ac来设置音频的声道数为2(即为双声道stereo);-ab设置音频aac编码的码率为128k。
二、libfdk-aac编码
ffmpeg工具默认是不支持libfdk_aac编码器的,如果需要需要ffmpeg支持libfdk_aac需要下载ffmpeg的源码然后编译,具体的ffmpeg编译支持libfdk_aac的介绍可以查考<fmpeg的下载安装>这个博文。
输入raw音频编码为AAC
ffmpeg -i input.wav -acodec libfdk_aac -y input.aac
通过-acodec来指定音频编码器libfdk_aac,也可以使用-c:a来指定音频编码器;aac编码器和libfdk_aac编码器都是用于编码得到音频aac流的,通常在低码率情况如编码码率在64k一下libfdk_aac编码出的aac流音质要比aac编码器编码出的aac六音质要高。与aac编码器一样libfdk_aac编码器在编码aac流的时候也可以使用-ar、 -ac、-ab参数,如下。
ffmpeg -i input.wav -acodec libfdk_aac -ar 44100 -ac 2 -ab 128k -y input.aa
三、ffmpeg其他音频编码器
输入输入raw音频编码为mp3
ffmpeg -i input.wav -acodec libmp3lame -ar 44100 -ac 2 -ab 128k -y input.mp3
通过-acodec来指定音频编码器libmp3lame;如果自己变异ffmpeg则需要配置ffmpeg时候加上--enable-libmp3lame 的选项。
输入raw音频编码为mp2
ffmpeg -i input.wav -acodec mp2 -ar 44100 -ac 2 -ab 128k -y input.mp2
通过-acodec来指定音频编码器mp2。mp2编码器是ffmpeg的默认编码mp2流的一个编码器,这个编码器有一个缺点就是容易丢失音频的高频部分(通常人能听到的最大声音频率为20kHZ,mp2这个编码器编码后的mp2在15kHZ以上的声音部分衰减/丢失很严重,18kHZ以上的声音几乎全部丢掉了)。
此外编码mp2的一个音频编码器还有libtwolame;使用libtwolame需要ffmpeg中支持libtwolame,即编译ffmpeg的时候需要加上--enable-libtwolame这个选项;libtwolame编码mp2的命令如下;libtwolame编码和mp2编码器相比libtwolame编码出来的mp2音频流能够保留较多的高频声音,甚至19kHZ以上都能有效保留。
ffmpeg -i input.wav -acodec libtwolame -ar 44100 -ac 2 -ab 128k -y input.mp2