我正在尝试使用FFMPEG将mp3音频文件转换为AAC文件,我需要将音频封装在MPEG-2容器中。生成的AAC文件需要是AAC-LC (低复杂度)、1通道、CBR模式、44100采样率和48kb/s比特率,所以我使用以下命令:
ffmpeg -y -i input.mp3 -ar 44100 -ab 48k -acodec libfdk_aac -ac 1 output.aac但是当我检查ADTS头文件时,音频文件总是包装在MPEG-4容器中。我已经尝试了这里列出的所有编解码器,但最终还是使用了一个mpeg-4容器来包装音频:http://trac.ffmpeg.org/wiki/AACEncodingGuide。
下面是我在检查AAC输出文件时得到的头文件:
mpeg_type:'MPEG4',配置文件: 2,profile_name:'AAC LC',sample_freq: 44100,channel_config: 1,通道: 1,frame_length: 139,buffer_fullness: 157,number_of_frames: 1,frames_per_sec: 43.06640625
为什么ffmpeg会在音频周围包装一个mp4容器,你有什么想法吗?我能以某种方式绕过这个问题吗?除了FFMPEG之外,我还可以尝试其他的编码器吗?我给了FAAC编码器一个镜头,它给了我正确的编码和ADTS头,但可惜它不支持mp3,只支持WAV。
发布于 2014-02-13 07:12:27
你的术语有点混乱。首先,mp4和mpeg4不是一回事。mpeg4是一个包罗万象的术语,用来描述各种编解码器和容器。mp4容器也称为mpeg4第14部分。aac容器格式只是带有ADTS头的原始aac帧的集合,它在mpeg4第3部分中进行了描述。因此,.aac是mpeg4格式,而不是mp4文件。
http://en.wikipedia.org/wiki/MPEG-4
现在就想要一个mpeg2容器,它是一个mpeg2传输流,程序流?
发布于 2016-03-18 22:11:48
要让ffmpeg & libfdk_aac将标志设置为mpeg2而不是mpeg4,请使用mpeg2配置文件:
ffmpeg -y -i input.mp3 -ar 44100 -ab 48k -acodec libfdk_aac -aprofile mpeg2_aac_low -ac 1 output.aac发布于 2014-02-14 02:58:26
通过以下建议,我能够成功地更改MPEG容器:
FFmpeg's AAC ("libfaac") Codec Options?
我需要进入FFmpeg的源代码,并在libfaac.c中将硬编码的MPEG版本更改为MPEG2,第115行(比另一篇文章中提到的要高出几行)。然后我重新编译了FFmpeg,确保包含--enable-libfaac。
https://stackoverflow.com/questions/21741058
复制相似问题