audio - 配置文件在 aac 编码音频中意味着什么
问题描述
我正在尝试将两个视频文件与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=
值。我能够复制28
但1
失败了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 编码器。
推荐阅读
- node.js - Mongoose 中的深度 find() 查询
- ios - 更改模态视图控制器的大小
- ruby-on-rails - 错误 422 无法处理的实体 - Rails API VueJS 来自
- python - 将 pandas DataFrame 中每一行的最后一个非零值转换为 0
- unity3d - 如何判断一个对象是预制资产还是该预制的实例?
- go - 奇怪的 404 服务器错误 (ListenAndServeTLS)
- go - 内存中的数据以最小化数据库读取?
- python - Python 阶乘程序 - 打印方程
- python - 程序忽略“else”语句
- reactjs - 将数据从孩子传递给父母