I'm running Ubuntu Server 10.04 LTS x64. I've been using ffmpeg on this machine to encode H.264 videos with AAC audio for over a year.
There was an update to the ffmpeg packages this week that seems to have broken the AAC encoder.
The command I'm using:
/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'
Conversion fails with this error:
Unknown encoder 'libfaac'
Output of 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'
Applicable output of ffmpeg -formats
:
Codecs:
D A aac Advanced Audio Coding
The E
for encoding is missing.
I already had libfaac-dev
and libfaac0
installed, and installed faac
after the fact to see if that would help. No dice.
Suggestions? I welcome any advice. Thank you.
Various builds of ffmpeg have certain modules enabled/disabled, often for legal reasons. (Certain patented codecs and what not can generally not be distributed, except in source form, depending on the country.)
If you want the full package, you will likely have to build it yourself, or browse Google for an hour, searching for a binary that has the modules you are looking for.
You could try using the Medibuntu Repository. It is a third-party repository that contains packages that are unable to be included in the official Ubuntu repositories.
See http://ubuntuforums.org/showthread.php?t=1117283 for more information.
When using Medibuntu, the core libav packages are still installed from the official Ubuntu repository. Medibuntu adds the
-extra
packages which provide the non-free functionality.What happens is that when Ubuntu releases a new version of libav, the
-extra
packages in Medibuntu take a while to be updated. The old-extra
packages are not compatible with the new version, and so when you upgrade the-extra
packages are removed, thereby removing the non-free codecs.The solution is to not upgrade libav until Medibuntu have released updated
-extra
packages.