我正在运行 Ubuntu Server 10.04 LTS x64。我已经在这台机器上使用 ffmpeg 对带有 AAC 音频的 H.264 视频进行编码一年多了。
本周 ffmpeg 软件包进行了一次更新,似乎损坏了 AAC 编码器。
我正在使用的命令:
/usr/bin/ffmpeg -y -i '/tmp/original.mov' -acodec libfaac -ar 44100 -ab 128k -vcodec libx264 -level 41 -crf 25 -r 25 -s '1280'x'720' -bufsize 250000k -maxrate 2500k -vpre lossless_slower '/tmp/converted.mp4'
转换失败并出现以下错误:
Unknown encoder 'libfaac'
输出ffmpeg -v
:
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5.1-1ubuntu1.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Sep 16 2011 17:08:44, gcc: 4.4.3
ffmpeg: missing argument for option '-v'
适用输出ffmpeg -formats
:
Codecs:
D A aac Advanced Audio Coding
E
缺少编码。
我已经安装了libfaac-dev
,libfaac0
并faac
在事后安装了,看看是否有帮助。没有用。
有什么建议吗?我欢迎任何建议。谢谢。
答案1
ffmpeg 的各种版本都启用/禁用了某些模块,通常是出于法律原因。(某些专利编解码器和其他内容通常不能分发,除非以源代码形式分发,这取决于国家/地区。)
如果您想要完整的软件包,您可能必须自己构建它,或者在 Google 上浏览一个小时,搜索包含您正在寻找的模块的二进制文件。
答案2
您可以尝试使用 Medibuntu 存储库。它是一个第三方存储库,其中包含无法包含在官方 Ubuntu 存储库中的软件包。
答案3
使用 Medibuntu 时,核心 libav 软件包仍从官方 Ubuntu 存储库安装。Medibuntu 添加了-extra
提供非免费功能的软件包。
Ubuntu 发布 libav 的新版本时,-extra
Medibuntu 中的软件包需要一段时间才能更新。旧软件包-extra
与新版本不兼容,因此升级时-extra
会删除旧软件包,从而删除非自由编解码器。
解决方案是在 Medibuntu 发布更新-extra
软件包之前不升级 libav。