首页 > 解决方案 > ffmpeg HE-AAC 'unsupported codec' 尽管编译时支持

问题描述

ffmpeg 缺乏对 AAC 的默认支持真的很烦人:

我的 ffmpeg 版本:

ffmpeg version git-2020-05-02-0d81edc Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-0d81edc_1 --enable-shared --cc=clang --host-cflags=-fno-stack-check --host-ldflags= --enable-gpl --enable-libaom --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --disable-libjack --disable-indev=jack --enable-opencl --enable-videotoolbox --disable-htmlpages --enable-libbluray --enable-libfdk-aac --enable-libopenh264 --enable-libopenjpeg --enable-librsvg --enable-libspeex --enable-libsrt --enable-libtwolame --enable-libwavpack --enable-libwebp --enable-libxvid --enable-nonfree --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb

我有几个 segment.ts 文件edit.txt,我尝试连接并转换为 mpg: ffmpeg -f concat -i edit.txt -c copy output.mpg

这不起作用

Input #0, concat, from 'edit.txt':
  Duration: N/A, start: 0.000000, bitrate: 121 kb/s
    Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720, 30 fps, 29.97 tbr, 90k tbn, 60 tbc
    Stream #0:1: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 121 kb/s
File 'output.mpg' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[mpeg @ 0x7f8e44807e00] VBV buffer size not set, using default size of 230KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
[mpeg @ 0x7f8e44807e00] Unsupported audio codec. Must be one of mp1, mp2, mp3, 16-bit pcm_dvd, pcm_s16be, ac3 or dts.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:1 --
Conversion failed!

所以我尝试了ffmpeg -f concat -i edit.txt -c:v copy -c:a libfdk_aac output.mpg-> 相同的效果。

为什么 fraunhofer 编解码器存在并且如果不支持在 FFMPEG 站点上被提及?有什么办法吗?

标签: ffmpegaac

解决方案


这是所选输出容器格式的问题。看起来ffmpeg不想将aac(编解码器)放入mpeg 程序流(容器)中。尝试.ts,.mp4.mkv代替.mpg.


推荐阅读