Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
    
Are you building ffmpeg yourself, or getting binaries? Various builds of ffmpeg have certain modules enabled/disabled, often for legal reasons. If you want the full package, you will likely have to build it yourself, or browse Google for an hour. –  Brad Sep 21 '11 at 15:28
    
Right you are. I just finished compiling from source and all is gravy. I should have directed my question to medibuntu, since their package was the one I was using, but it had been so long that I forgot. I was able to get it working following this excellent guide: ubuntuforums.org/showpost.php?p=9868359&postcount=1289 If you post your comment as an answer, I'll accept it. –  Andrew Sep 21 '11 at 16:38

3 Answers 3

up vote 2 down vote accepted

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.

share|improve this answer
    
Yup. That worked. Followed this guide: ubuntuforums.org/showpost.php?p=9868359&postcount=1289 –  Andrew Sep 21 '11 at 17:34

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.

share|improve this answer
    
Thanks for the tip. I was actually using the Medibuntu repositories already. An update they pushed through was what broke my installation. –  Andrew Oct 4 '11 at 21:53

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.

share|improve this answer
    
Thank you for that explanation. Makes perfect sense. –  Andrew Jun 27 '12 at 13:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.