在 ffmpeg 中为不同的音频流指定不同的 aac 配置文件

在 ffmpeg 中为不同的音频流指定不同的 aac 配置文件

我正在尝试拍摄包含两个音频流的视频,并使用 AAC HEv2 编码将第一个音频流压缩为 48 kbps 的立体声,使用 HEv1 将第二个音频流压缩为 40 kbps 的单声道。我的代码基本上如下:

set STREAM_01=-map 0:a:0 -b:a:0 48000 -ac 2 -c:a:0 libfdk_aac -profile:a aac_he_v2 
set STREAM_02=-map 0:a:1 -b:a:1 40000 -ac 1 -c:a:1 libfdk_aac -profile:a aac_he 
set SPECS=-ar 48000 -sample_fmt s16 -cutoff 20000
ffmpeg.exe -i input.mkv -map 0:v:0 -c:v copy %SPECS% %STREAM_01% %STREAM_02% output.mkv

但程序似乎只执行最后指定的两个配置文件中的任一个——两个流要么输出 HEv1,要么都输出 HEv2。这无疑是因为配置文件指令省略了流说明符,但当我尝试在表单中写入配置文件选项时"-profile:a:1 aac_he_v2""-profile:a:2 aac_he"我收到一条错误消息,“打开输出流 #0:1 的编码器时出错”。我在这里遗漏了什么?

答案1

aac_he_v2对立体声流进行编码并且您的频道布局选项不符合流要求。

set STREAM_01=-map 0:a:0 -b:a:0 48000 -ac:a:0 2 -c:a:0 libfdk_aac -profile:a:0 aac_he_v2 
set STREAM_02=-map 0:a:1 -b:a:1 40000 -ac:a:1 1 -c:a:1 libfdk_aac -profile:a:1 aac_he 

相关内容