Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I tried to install ffmpeg in trusty/Ubuntu 14.04 and got the following message:

$sudo apt-get install ffmpeg

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package ffmpeg is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'ffmpeg' has no installation candidate

Why isn't the package available?

share|improve this question
    
What is the output of: apt-cache search ffmpeg | grep "ffmpeg" If you don't see ffmpeg in the list of returned results, then something has gone wrong with your repo manager. For now, I'd suggest installing by building from source. Download from here. –  wyas Mar 11 at 5:17

7 Answers 7

up vote 83 down vote accepted

FFmpeg and libav

libav from the Ubuntu repositories

Ubuntu started shipping the libav fork instead of FFmpeg in recent releases. If you installed the ffmpeg package, then you actually installed the libav-tools package and a program that told you to use avconv instead of ffmpeg in the future, giving the impression that ffmpeg is deprecated, which it is not.

The transitional ffmpeg package seems to have been removed from trusty/Ubuntu 14.04 (compare the package files listing for saucy and trusty of the source package).

So one option is to install the libav-tools package and use avconv instead (NB that this is not "mainline" FFmpeg but a prominent fork instead).

FFmpeg from a PPA on Launchpad

Another option is to use a PPA that provides FFmpeg. Please have a look at the FFmpeg download page for details of possible PPA's.

Related questions:

Install from source

Another option is to install FFmpeg dependency packages, then manually compile+install it from source.


The following is what I could find, when researching this topic. I haven't been following the development of both projects closely and it is not my intention to blame anyone. You as a reader shouldn't do either.

How did the fork happen?

Wikipedia states that the forked project as well as the initial release were announced on March 13th 2011, however there is a bit more that was going on.

Digging through Git commits

Official announcements on libav.org

The following posts are from the news section (with the oldest in last):

August 09 2011

Updated on 12.09.2011.

For consistency with our new name we have renamed ffplay to avplay, ffserver to avserver and ffprobe to avprobe. Their behavior is the same, just the names were changed.

With ffmpeg (the command line tool) we decided to use this opportunity to fix some longstanding usability problems, which involves breaking compatibility. Therefore we have added a new tool named avconv which is based on ffmpeg, but has a different (hopefully more powerful and easier to use) syntax for some options. ffmpeg will be kept in its current state for some time, so no scripts or frontends using it will break. However it will not be developed further.

Differences between avconv and ffmpeg are:

[...]

Note that the avconv interface is not considered stable yet. More incompatible changes may come in the following weeks. We will announce here when avconv is stable.

And earlier in 2011:

Mar 18, 2011

We have just pushed another point release from our 0.6 release branch: Libav 0.6.2. This is another maintenance-only release addressing two security issues.

From now on, we will be using our new project name libav. But don't worry, compared to the preceding release 0.6.1, the only functional changes are the two security fixes for the VC1 and APE decoders. This means that libav provides a painless drop-in replacement for existing FFmpeg installations.

Moreover, we are proud to accompany this source release with executables and libraries for the win32 platform. These binaries include H.264 encoding using the bundled x264 library. Enjoy!

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Mar 17, 2011

We have just pushed another point release from our 0.5 release branch: FFmpeg 0.5.4. This is another maintenance-only release that addresses a number of security issues.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

March 13, 2011

We, as a group of FFmpeg developers, have decided to continue developing FFmpeg under the name Libav. All existing infrastructure will be transferred to the libav.org domain.

You can update your git repository using the following command:

git remote set-url origin 'git://git.libav.org/libav'

For now we are still reachable over FFmpeg's mailing lists and IRC channels but we will migrate to libav.org counterparts. For a transition period both the website and source might still contain references to FFmpeg. These will disappear over time, except where historically relevant.

February 24, 2011

FFmpeg development has moved to Git, and the SVN repository is no longer updated. The SVN repository may be removed in a near future, so you're recommended to use a Git repository instead.

The last revision committed to SVN was r26402 on 2011-01-19 and replaced the svn:external libswscale with a standalone copy.

Note that FFmpeg development has in fact moved to a Git repository by now and that there are two Git repositories. See the corresponding projects download page.

share|improve this answer
    
When did this change happen? –  Seth Apr 4 at 1:47
    
@Seth Do you mean shipping of libav instead of FFmpeg or dropping of the transitional package? I found a mail that points to a Team Report from the Technical Board and and also added a link to the source package on launchpad where one can compare the saucy and trusty package listings, but I don't know the details. –  LiveWireBT Apr 4 at 2:33
    
I was referring to dropping the package, although I'm interested in the time-frames for both if possible. –  Seth Apr 4 at 2:35
2  
I might move the how to install ffmpeg from ppa to the end. As a "If you're really in to swimming against the tide, and you already read all these things... then you can do this." Instead of putting it all the way at the front. Like, encourage using things that are in main/uni/multi if you can avoid PPAs. –  hbdgaf Apr 4 at 20:58
1  
@Braiam reading is a lovely skill. There is also a short answer below, too. –  Benjamin R Aug 10 at 7:29

ffmpeg was replaced in previous releases by the avconv program from the libav project.

To install avconv you need to install the libav-tools package:

sudo apt-get install libav-tools

avconv is very similar to ffmpeg, but they also have some differences in syntax.

share|improve this answer
3  
+1 easiest answer –  Tino Apr 12 at 14:51

You can also use this PPA: ppa:jon-severinsson/ffmpeg

sudo apt-add-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
share|improve this answer
    
Fixed apt-add-repository -> add-apt-repository. If apt-add-repository doesnt work for you anymore, try this: stackoverflow.com/questions/13018626/… –  wwwhizz May 5 at 18:05
    
That's basically the same information I posted in my answer, but without the warning that should always be given before advising users to install packages from PPAs. Also there is the possibility that someone else will take over maintenance of an ffmpeg PPA in the future or that the PPA will just be moved or renamed. Therefore linking to official instructions is the right way, as it reduces redundancy and maintenance effort. –  LiveWireBT Jun 2 at 19:37
    
This one doesn't provide GStreamer-ffmpeg integration. @Duong's answer (mc3man's PPA) does. –  Victor Sergienko Aug 11 at 12:33

ffmpeg had removed repo of Ubuntu, instead of libav. you should add ppa:

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg

watch your output

share|improve this answer
1  
It has to be: `sudo add-apt-repository ppa:mc3man/trusty-media :) can't edit this, not enough characters changed. –  IndexOutOfBoundsException May 24 at 9:23
1  
That is not the PPA listed on FFmpeg.org as the current official PPA. (Also the project member maintaining the PPA may change, that's the reason why I decided to not includ instructions on how to add a certain PPA.) Also if you look at this PPA it updates a whole lot more packages than just ffmpeg. –  LiveWireBT Jun 2 at 19:10

FFMPEG package was removed since some time now from Debian repositories. There's still an ongoing debate about including the package again in the repositories. Ubuntu as Debian derivative, depends of the decitions made upstream. Since long ago, the package was just empty with an dependency to libav. This was changed in 12 May 2012 when the package was dropped and removed from the archives:

libav (6:0.8.99-1537-gacb2c79-1) experimental; urgency=low

  * New upstream snapshot
    - Drop patches applied upstream
    - Longer build libpostproc, dropped upstream
    - follow soname bump of libavcodec and libavformat 53->54
    - New library: libswresample
  * no longer build and use dirac, removed upstream in favor of libschroedinger
  * remove deprecated ffmpeg package
  * bump shlibs version

 -- Reinhard Tartler <siretart@tauware.de>  Sat, 12 May 2012 22:02:03 +0200
share|improve this answer
    
Don't say it was empty, the packages in saucy contain a binary dpkg --contents ffmpeg_0.8.7-1ubuntu2_amd64.deb [...] -rwxr-xr-x root/root 106624 2013-10-11 10:41 ./usr/bin/ffmpeg. –  LiveWireBT Apr 4 at 18:56
    
@LiveWireBT could you use the package alone? That single file was just a binary to link avconv binary. Transitional packages are always deemed as empty packages. –  Braiam Apr 4 at 21:05
    
We may just be thinking the same thing and are misunderstanding each other. :) –  LiveWireBT Apr 4 at 21:08

If you want to install ffmpeg 2.2.1 (from source) in Ubuntu 14.04, you can give it a try using the following options:

For 64-bit OS:

List of Dependencies:

yasm frei0r-plugins-dev gnutls-bin libgnutls-dev libass-dev libgsm1-dev libmp3lame-dev libopencv-dev libopenjpeg-dev libopus-dev libpulse-dev libschroedinger-dev libsoxr-dev libspeex-dev libtheora-dev libv4l-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev libopenal-dev libcdio-paranoia-dev

Compilation options:

./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib/x86_64-linux-gnu/  --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib/x86_64-linux-gnu/ --enable-runtime-cpudetect

For a 32 bit OS:

List of Dependencies:

yasm frei0r-plugins-dev gnutls-bin libgnutls-dev libass-dev libgsm1-dev libmp3lame-dev libopencv-dev libopenjpeg-dev libopus-dev libpulse-dev libschroedinger-dev libsoxr-dev libspeex-dev libtheora-dev libv4l-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev libopenal-dev libcdio-paranoia-dev libopencore-amrwb-dev libopencore-amrnb-dev

Compilation options:

./configure --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --enable-runtime-cpudetect --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --disable-stripping  

For more information see my youtube video.

share|improve this answer
    
Why suggest building as shared for amd64??, there is little to be gained & may break other apps that depend on those shared libs. –  doug May 13 at 22:43

Go to 'Software Sources' and make sure you have made all default repositories enabled (source code repos are not necessary in this case).

Then run sudo apt-get update once and then try to install ffmpeg.

share|improve this answer
6  
This does not work, since the ffmpeg pacakge has been removed from the default repo's. –  Dan Johansen May 1 at 5:34

protected by Community Jul 10 at 20:35

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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