profile在aac编码的音频中意味着什么

What does profile means in an aac encoded audio

我正在尝试将两个视频文件与 ffmpeg concat demuxer 连接起来,其中大部分工作正常! 但是,当我尝试使用相同的编解码器连接具有两个不同音频配置文件的视频时,它会连接到具有奇怪声音问题的生成视频。当重新编码生成的视频时,它会吐出很多与音频相关的错误。

这是来自不同视频文件的一些音频流的 ffprobe 输出 视频 1

[STREAM]
index=1
codec_name=aac
codec_long_name=unknown
profile=4
codec_type=audio
codec_time_base=1/48000
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
...
[/STREAM]

视频 2

[STREAM]
index=1
codec_name=aac
codec_long_name=unknown
profile=1
codec_type=audio
codec_time_base=1/48000
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
...
[/STREAM]

视频 3

[STREAM]
index=1
codec_name=aac
codec_long_name=unknown
profile=28
codec_type=audio
codec_time_base=1/48000
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=fltp
...
[/STREAM]

看看不同的 profile= values.I 能够重现 281 但是 4

失败了

28 = he_aac_v2 1 = ffmpeg default

所以我最想知道的是, 这些不同的值对 aac 意味着什么? 以及如何使用任何 aac 编码重现它们?

根据libavcodec/avcodec.h

FF_PROFILE_AAC_MAIN    0
FF_PROFILE_AAC_LOW     1
FF_PROFILE_AAC_SSR     2
FF_PROFILE_AAC_LTP     3
FF_PROFILE_AAC_HE      4
FF_PROFILE_AAC_HE_V2   28
FF_PROFILE_AAC_LD      22
FF_PROFILE_AAC_ELD     38

原生 FFmpeg AAC 编码器 (-c:a aac) 无法输出 HE 或 HEv2 配置文件。

如果您需要 HE 配置文件(-profile:a 4-profile:a aac_he),则必须使用其他编码器,例如 -c:a libfdk_aac-c:a aac_at(macOS/iOS),或单独的独立 AAC 编码器。