media-video/libav stable on most important archs

As summary says in Gentoo you can finally decide which implementation of libav you want, good old ffmpeg named flavor or the new and shiny libav one.

14 months after I introduced it to main tree we finally got it stable almost everywhere (just ppc missing yet as usual :P). We did *censored* of work in order to support both implementations, introducing virtual package, proper (non-conditional) patches everywhere, etc. etc.

So why should you switch your package?

Basically it does not matter for you. We can say it can be done as personal prefference.
We can say that ffmpeg merges from libav tree and throws some experimental patches over it. Thats why my personal prefference is with libav folks as I don’t trust any idea of merging anything. Otoh the ffmpeg is the “orginal” (well most devs moved under libav) upstream thus they should get our trust for what they are doing.

Today from the distro PoV there are some distributions using libav (Debian, Sabayon) and also ffmpeg (openSUSE [external repo called packman]).

As we in Gentoo really are pro-choice just pick yourself and let us know how happy are you with such decision :-P

So how can I switch?

Just edit /etc/portage/package.use* to keep same useflag from media-video/ffmpeg to media-video/libav and run:

emerge -C ffmpeg && emerge -1v libav

After this move you need to recompile all the packages depending on ffmpeg. This can be done with little help of revdep_rebuild or by using portage-2.2 and its sets by running:

emerge @preserved-rebuild

packages that hard require media-video/ffmpeg

As reported in the first comment the mplayer1 does now strictly require ffmpeg. So I did a little check to see which packages hard-require the other implementation and here is the list:

games-arcade/performous-0.6.1 (media-video/ffmpeg)
media-libs/ffmpegsource- (>=media-video/ffmpeg-0.9)
media-libs/mediastreamer-2.3.0-r1 (video ? media-video/ffmpeg)
media-plugins/audacious-plugins-3.0.3 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/audacious-plugins-3.1 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/audacious-plugins-3.1.1 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/audacious-plugins-3.2 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/audacious-plugins-3.2.1 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/audacious-plugins-3.2.2-r1 (ffmpeg ? >=media-video/ffmpeg-0.7.3)
media-plugins/mediastreamer-x264-1.1.7 (media-video/ffmpeg)
media-plugins/mediastreamer-x264-1.3.3 (media-video/ffmpeg)
media-video/dv2sub-0.3 (kino ? media-video/ffmpeg)
media-video/mplayer-1.0_rc4_p20120213 (>=media-video/ffmpeg-0.10)
media-video/mplayer-1.0_rc4_p20120405 (>=media-video/ffmpeg-0.10.2)
media-video/mplayer-9999 (>media-video/ffmpeg-0.10.2)
media-video/transcode-1.1.5-r2 (postproc ? media-video/ffmpeg)
net-libs/opal-2.2.11 (>=media-video/ffmpeg-0.4.7)
net-libs/opal-3.6.8 (ffmpeg ? >=media-video/ffmpeg-0.5[encode])
                    (x264 ? >=media-video/ffmpeg-0.4.7)
net-libs/opal-3.6.8-r1 (ffmpeg ? >=media-video/ffmpeg-0.5[encode])
                       (x264 ? >=media-video/ffmpeg-0.4.7)
net-libs/openh323-1.18.0 (>=media-video/ffmpeg-0.4.7)

I bet most of these could work with libav, so if you are user of such package and want to try libav just edit the dependency to be on virtual/ffmpeg instead of the media-video/ffmpeg and see if it works.

Bookmark the permalink.

16 Responses to media-video/libav stable on most important archs

  1. Infirit says:

    This fails horribly if you have mplayer installed. Mplayer has a hard dep on ffmpeg not virtual/ffmpeg.

    • scarabeus says:

      Yep seems like Alexis decided to drop the compat code:

      scarabeus@arcarius: ~/gentoo/gentoo-x86/media-video/mplayer $ grep media-video/ffmpeg *.ebuild
      mplayer-1.0_rc4_p20110322-r1.ebuild:[[ ${PV} == *9999* ]] && RDEPEND+=” external-ffmpeg? ( media-video/ffmpeg )”
      mplayer-1.0_rc4_p20120213.ebuild: >=media-video/ffmpeg-0.10
      mplayer-1.0_rc4_p20120405.ebuild: >=media-video/ffmpeg-0.10.2
      mplayer-9999.ebuild: >media-video/ffmpeg-0.10.2

      Well still one can use mplayer2 which actually works with both implementations without issues.

      • scarabeus says:

        It seems like mplayer1 does on purpose try to not be able to build with libav. So if you want to use that library just try mplayer2, the codebase is the same and functionality too.

        • Alex says:

          Looking at the mplayer2 page I see mencoder has been dropped which is what I use for doing all my DVD rips. Although is claims encoding functionality will be re-added later it’s not currently available.

          Assuming I want to keep the ability to do command line video encoding do I need to switch to using libav/ffmpeg directly?

          • scarabeus says:

            I honestly have no answer. I never do video encoding.

            But i think the avconv from libav package might be some use as others use it quite happily.

      • infirit says:

        And that is what I did but.. There are more packages that hard dep on media-plugins/ffmpeg, audacious-plugins is another example (ffmpeg useflag).

        • scarabeus says:

          Yep, I expanded the blogpost with list of the hard-depending packages.

  2. Flameeyes says:

    You could also have said that quite a few libav developers use Gentoo proactively and that two Gentoo developers are also libav developers (me and Luca).

    • scarabeus says:

      Prolly yep… But I said most devs are on the libav version :-)

  3. baaann says:

    Done the switch, but now revdep-rebuild is trying to rebuild vlc and it is failing because it cannot find This is with libav-0.8.2-r1

    • scarabeus says:

      I think that is something that aballier did bit recently, because I have that version with libav on my machine:

      Installed versions: 2.0.1(10:26:48 7.5.2012)

      By looking on the changelog i see this:

      14 May 2012; Luca Barbato vlc-2.0.1.ebuild,
      vlc-2.0.9999.ebuild, vlc-9999.ebuild:
      Support stand-alone libpostproc

      as Luca is libav dep I hope he fixed it, so try syncing the main tree.

  4. Foyaxe says:

    The libav ebuild has no aacplus use flag.
    I need the libaacplus encoder for my streaming server.
    So, im forced to stay with ffmpeg for now.

    • scarabeus says:

      Yep it has not as the implementation was not yet finished and is just showeled into ffmpeg in its current state… :-)

  5. Toralf Förster says:

    Gah – and transcode is used by k3b (USE encode) and furthermore the USE flag encode is used by kde-base/kdemultimedia-kioslaves and others ….

    • scarabeus says:

      I already fixed transcode and most of the packages. I was just too lazy to blog about it…