ffmpeg - 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 站点上被提及?有什么办法吗?
解决方案
这是所选输出容器格式的问题。看起来ffmpeg
不想将aac(编解码器)放入mpeg 程序流(容器)中。尝试.ts
,.mp4
或.mkv
代替.mpg
.
推荐阅读
- python - 如何使用 Selenium 同时与不同的窗口进行交互?
- php - 使远程服务器的客户端(Raspberry pi,php)可以访问键盘
- php - 如何在 PHP 的新行上更改变量值
- kotlin - kotlin coroutine - 在协程内部调用时如何确保某些命令在 UI 主线程上运行?
- android - Uber RideRequestButton 不显示美国以外国家/地区的估算值
- php - 将自定义类添加到在 Woocommerce 中显示“缺货”的变体选项
- c# - 从左到右为多行排序列表数据
- java - DirectRunner 不会按照我在 Beam Java SDK 中使用 FixedWindows 指定的方式从 Pub/Sub 读取
- php - POST JSON MULTIDIMENSIONAL PHP 不工作
- json - SyntaxError:JSON 中位置 0 的意外标记 B - JSON Rest API