【ffmpeg基础】ffmpeg音频编码

一、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的介绍可以查考这个博文。

输入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

你可能感兴趣的:(ffmpeg基础,ffmpeg,音视频)