Answers:
这是最基本的FFmpeg命令,可使用最高质量的AAC FFmpeg将输入转换为AAC音频。libfdk_aac
是Fraunhofer AAC编码器,在编译带有支持的FFmpeg时可用。
ffmpeg -i input.mp3 -c:a libfdk_aac output.m4a
要更改质量,您有两种选择:
对于可变比特率(VBR),请使用该-vbr
选项。例如,这-vbr 4
是一个不错的选择(立体声音频约为128 kBit / s)。越高意味着越好。取值范围是1到5。
ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 4 output.m4a
对于固定比特率(CBR),请使用-b:a
选项,例如-b:a 128k
。对于大多数情况,128 kBit / s应该足够了。您通常也可以选择较低的东西。
ffmpeg -i input.mp3 -c:a libfdk_aac -b:a 128k output.m4a
您还可以使用HE-AAC(v1 / v2)代替最适合低比特率的默认AAC-LC(低复杂度)配置文件:
ffmpeg -i input.mp3 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a
libfdk_aac
呢?某些版本的FFmpeg没有libfdk_aac
(出于许可原因)。如果是这样,您可以使用内置的AAC编码器:
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a
该编码器不正确支持VBR,因此,如果需要它或HE-AAC,请继续阅读。
您可以自己编译ffmpeg并添加libfdk_aac
支持。FFmpeg Wiki上有指南。在Linux上容易编译,在OS X上容易编译,而在Windows上很难编译。当您遵循编译指南并事先安装适当的库时,FFmpeg现在为您提供了使用的选项libfdk_aac
。
您的原始方法存在一些问题:
alac
不是AAC。ALAC是Apple无损音频编解码器,而AAC是高级音频编码。
这就是为什么您的输出大于输入的原因,因为与MP3相比,ALAC仍然经过压缩,但是它需要无损–这就是为什么它需要存储更多数据。
.aac
不是ALAC音频的输出容器。如果您使用AAC,那应该可以。我会使用MP4或M4A。
ffmpeg
似乎不支持,但是转换为M4A然后重新命名似乎是可行的。
ffmpeg
,但这实际上不是来自FFmpeg,而是Libav分支。不幸的是,Ubuntu捆绑了它,而不是“真正的” ffmpeg。请参阅:谁能告诉我ffmpeg,libav和avconv之间的区别和关系
-f adts
。
轻松转换为Zeranoe Windows构建的AAC
ffmpeg -i input.mp3 -c:a aac -b:a 128k output.m4a
使用“ aac”代替libfaac或libfdk_aac:https://trac.ffmpeg.org/wiki/Encode/AAC
“ FFmpeg可以支持三种AAC-LC编码器(aac,libfaac,libfdk_aac)和一种HE-AAC(v1 / 2)编码器(libfdk_aac)。libfaac和libfdk_aac的许可证与GPL不兼容,因此GPL不允许分发包含这些许可所许可的代码的二进制文件,同时还包括GPL许可的代码。”
libfaac
从3.2开始,支持也已删除。
-c:a
,这有什么同义词吗?我想这可能意味着,-acodec:a
但最后我只是删除了它,并且ffmpeg
能够根据所需的输出文件名推导出编解码器。(-strict experimental
尽管需要;并且-map_metadata 0:0
为了保留ID3标签而采取了充分措施。)