HandBrake, MakeMKV, FFMpeg and Skype available for CentOS/RHEL 7

The multimedia and Skype repositories now contain all components and libraries to have the same “experience” as in Fedora 23. This includes HandBrake, MakeMKV, Skype and the same FFMPeg build with the same options that are enabled in the Fedora 23 build; including Intel Quick Sync Video and the Nvidia Encoder.

handbrake-1.0-centos7

To enable this, new build roots with CentOS/RHEL i686 images have been used. This way all dependencies have been correctly built from the same CentOS/RHEL 7 packages and not with cross-compilation or using the Fedora 19 buildroots.

19 thoughts to “HandBrake, MakeMKV, FFMpeg and Skype available for CentOS/RHEL 7”

  1. After using your wonderful ffmpeg for awhile, I just installed ffmeg-devel, so I can compile and get a linux version of comskip working for my plex install (https://forum.kodi.tv/showthread.php?tid=150084&page=4). Sadly I get error: ‘CODEC_ID_H264’ was not declared in this scope and also get ‘CODEC_ID_MPEG1VIDEO’ was not declared in this scope.

    This seems odd to me, since FFMPEG documentation clearly shows this is a common enum value in the header files for FFMPEG devel. (see: https://www.ffmpeg.org/doxygen/0.6/avcodec_8h.html)
    After searching a bit, It seems the recommendation is to rebuild ffmpeg from the ground up, which I suppose I’ll try to do, but thats a non-trivial enterprise for me… Any ideas why these dependencies fail?

    Thanks.

    1. Ehm, what is comskip? Never heard of it. Maybe you want to wait a little more, I’m releasing the FFMpeg 3.3.3 update today.

      After searching a bit, It seems the recommendation is to rebuild ffmpeg from the ground up, which I suppose I’ll try to do, but thats a non-trivial enterprise for me… Any ideas why these dependencies fail?

      Rebuild how? With which differences?

  2. Does this version of ffmpeg only work if you have an nvidia card? I tred installing this to use with obs-studio based on the instruction on their github page (https://github.com/jp9000/obs-studio/wiki/Install-Instructions#fedora-installation-unofficial), and was getting errors that it was looking for an nvidia .so file, which of course I do not have, as my video card is an intel:
    00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)

    If this is expected to work, any idea what I may have done wrong? If this is a known issue, is there a work around besides falling back to rpm fusion version of ffmpeg? I have done that for now and it works, but as obs needs x265 from this repo, it is going to be a pain to maintain like this for updates. Thanks!

    1. Hi, the ffmpeg binary works fine even without hardware acceleration. The Cuda library is loaded at runtime ONLY if you explicitly ask for the Nvidia encoder to be used. It does not even need to be installed. You can probably configure such behaviour in OBS Studio.

      Also, note that OBS Studio supports both Intel Quick Sync Video (QSV) and NVENC, so if you have a recent Intel system you can also use QSV. The ffmpeg version provided here is compiled with both options turned on:

      $ ffmpeg -decoders 2>&1 | egrep -i "Intel Quick Sync|NVIDIA"
       V....D h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
       V....D hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)
       V....D mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)
       V..... vc1_qsv              VC-1 video (Intel Quick Sync Video acceleration) (codec vc1)
      $ ffmpeg -encoders 2>&1 | egrep -i "Intel Quick Sync|NVIDIA"
       V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
       V..... nvenc                NVIDIA NVENC h264 encoder (codec h264)
       V..... nvenc_h264           NVIDIA NVENC h264 encoder (codec h264)
       V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
       V..... hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)
       V..... mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)

      For Intel Quick Sync Video, the supporting library is directly linked in:

      $ ldd /usr/lib64/libavcodec.so.57.24.102 | grep mfx
      	libmfx.so.0 => /lib64/libmfx.so.0 (0x00007f351e24b000)
      $ strings /usr/lib64/libavcodec.so.57.24.102 | grep cuda
      libcuda.so.1

      I will make a note on the web page to make it more clear.

  3. Definitively a great job !

    Just one anoying thing, as there is no rpmfusion for EL7, we have some breaking stuff with Nux Dextop.

    # yum install vlc

    Erreur : Paquet : vlc-core-2.2.1-6.el7.nux.x86_64 (nux-dextop)
    Requiert : libx264.so.142()(64bit)
    Disponible : x264-libs-0.142-4.20140423gite260ea5.el7.nux.x86_64 (nux-dextop)
    libx264.so.142()(64bit)
    Disponible : x264-libs-0.142-7.20140728gitaf8e768.el7.nux.x86_64 (nux-dextop)
    libx264.so.142()(64bit)
    Disponible : x264-libs-0.142-11.20141221git6a301b6.el7.nux.x86_64 (nux-dextop)
    libx264.so.142()(64bit)
    Installé  : x264-libs-0.148-2.20151020gita0cd7d3.el7.x86_64 (@epel-HandBrake)
    ~libx264.so.148()(64bit)
    Erreur : Paquet : vlc-core-2.2.1-6.el7.nux.x86_64 (nux-dextop)
    Requiert : libx265.so.51()(64bit)
    Disponible : x265-libs-1.6-1.el7.nux.x86_64 (nux-dextop)
    libx265.so.51()(64bit)
    Installé  : x265-libs-1.8-2.el7.x86_64 (@epel-HandBrake)
    ~libx265.so.68()(64bit)
    Disponible : x265-libs-1.2-6.el7.nux.x86_64 (nux-dextop)
    ~libx265.so.25()(64bit)

      1. This is great, I have used negativeo17 for recent ffmpeg builds before, but I do you el7 + epel + nux desktop for my workstation as nux desktop provides a lot of useful software and is very stable. Compatibility or alignment with this repo would be great.

    1. No issues here, just a recent HEVC encoding problem on CentOS/RHEL 7 fixed by upstream. Can you test with the latest package in epel-7 and fedora-23?

  4. It does look like libdvdcss is broken:

    HandBrakeCLI –scan -i /dev/cdrom
    [17:10:15] hb_init: starting libhb thread
    HandBrake rev5474 (2014072299) – Linux x86_64 – http://handbrake.fr
    4 CPUs detected
    Opening /dev/cdrom…
    [17:10:15] hb_scan: path=/dev/cdrom, title_index=1
    libbluray/bdnav/index_parse.c:162: indx_parse(): error opening /dev/cdrom/BDMV/index.bdmv
    libbluray/bdnav/index_parse.c:162: indx_parse(): error opening /dev/cdrom/BDMV/BACKUP/index.bdmv
    libbluray/bluray.c:1725: nav_get_title_list(/dev/cdrom) failed (0x7f88c0000900)
    [17:10:15] bd: not a bd – trying as a stream/file instead
    [17:10:15] dvd: Region mask 0xff
    [17:10:15] dvd: Warning, DVD device has no region set
    libdvdnav: Using dvdnav version 4.1.3
    libdvdread: Missing symbols in libdvdcss.so.2, this shouldn’t happen !
    libdvdread: Using libdvdcss version for DVD access
    Segmentation fault (core dumped)

    alternately:

    totem /dev/cdrom
    libdvdread: Missing symbols in libdvdcss.so.2, this shouldn’t happen !
    libdvdread: Using libdvdcss version for DVD access
    Segmentation fault (core dumped)

    1. libdvdnav: Using dvdnav version 4.1.3
      libdvdread: Missing symbols in libdvdcss.so.2, this shouldn’t happen !

      You need to use the libdvdnav package (5.0.3) that is included in the HandBrake repository for it to work. Apparently you are using some older version.

    1. Specifically, on rhel7 workstation:

      sudo yum -y install HandBrake-cli
      Loaded plugins: changelog, fs-snapshot, priorities, product-id, refresh-packagekit, rhnplugin, rpm-warm-cache, subscription-manager, verify

      Resolving Dependencies
      --> Running transaction check
      ---> Package HandBrake-cli.x86_64 0:1.0-10.57a9f48.el7 will be installed
      --> Processing Dependency: libdvdcss(x86-64) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libx265.so.68()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libx264.so.148()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libmp3lame.so.0()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libfribidi.so.0()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libfdk-aac.so.1()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Processing Dependency: libass.so.5()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      --> Running transaction check
      ---> Package HandBrake-cli.x86_64 0:1.0-10.57a9f48.el7 will be installed
      --> Processing Dependency: libfribidi.so.0()(64bit) for package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64
      ---> Package lame-libs.x86_64 0:3.99.5-5.el7 will be installed
      ---> Package libass.x86_64 0:0.13.1-1.el7 will be installed
      --> Processing Dependency: libfribidi.so.0()(64bit) for package: libass-0.13.1-1.el7.x86_64
      ---> Package libdvdcss.x86_64 0:1.3.99-1.el7 will be installed
      ---> Package libfdk-aac.x86_64 0:0.1.4-1.el7 will be installed
      ---> Package x264-libs.x86_64 0:0.148-2.20151020gita0cd7d3.el7 will be installed
      ---> Package x265-libs.x86_64 0:1.8-2.el7 will be installed
      --> Finished Dependency Resolution
      Error: Package: libass-0.13.1-1.el7.x86_64 (epel-HandBrake)
      Requires: libfribidi.so.0()(64bit)
      Error: Package: HandBrake-cli-1.0-10.57a9f48.el7.x86_64 (epel-HandBrake)
      Requires: libfribidi.so.0()(64bit)
      You could try using --skip-broken to work around the problem
      You could try running: rpm -Va --nofiles --nodigest

        1. Ah ok, good to know. I’m testing here on CentOS 7. I will make an amendment to the page about this.
          If you see any other thing that is missing from the page that is required for RHEL 7 please let me know, as I don’t have a subscription.

          Thanks & regards,
          –Simone

      1. There is something wrong in your system. Fribidi is part of the base packages of the distribution:

        # yum --showduplicates list fribidi
        Loaded plugins: fastestmirror, langpacks
        Loading mirror speeds from cached hostfile
        * base: pkg.adfinis-sygroup.ch
        * epel: mirrors.ircam.fr
        * extras: pkg.adfinis-sygroup.ch
        * updates: pkg.adfinis-sygroup.ch
        Installed Packages
        fribidi.x86_64 0.19.4-6.el7 @base
        Available Packages
        fribidi.i686 0.19.4-6.el7 base
        fribidi.x86_64 0.19.4-6.el7 base

Leave a Reply