SUSE Blog

Additional multimedia codec support for SLED 12



By: mikewillis

November 3, 2014 3:35 pm

Reads:6,833

Comments:7

Score:5

Print/PDF

As with most Linux distributions, SLED’s out of the box multimedia capability is somewhat limited in terms of codec support. It has support for MP3, the OGG family and some others, but it doesn’t have support for commonly used codecs such as H264 and AAC and those required for DVD playback.

There are packages available from third parties built for SLED that will add such capabilities in the form of plugins for gstreamer (the backend used by Totem, Banshee and others). However all such packages I’ve found require that you replace packages that are already in SLED with different versions. Wherever possible I like to avoid replacing packages provided by SUSE. The more you replace the higher the risk of undesirable results and it may also have an effect on your ability to obtain support from SUSE. (Perhaps your problem is due to you having replaced all those packages…) So I set out to work out my own solution that would provide codec support I wanted without replacing anything provided by SUSE and which could be trivially removed if required.

So one advantage of this method is that it doesn’t replace any packages SUSE provide. Another advantage, albeit which may or may not apply to you, is that provided all the required dependencies are already installed, it is possible to use this solution without having root access. (Details of which packages need to be installed are in the README.txt file in the attachment.) A disadvantage is that you do not get the latest versions of the additional gstreamer plugins. The versions of the gstreamer plugins used are ones which I have found, through looking at release dates and some degree of trial and error, to be the newest that are compatible with the version of gstreamer provided in SLED 12.

This solution involves obtaining source code and compiling it, but if that sounds beyond your capability don’t worry as I have created a script multimediacodecs_sled12.tbz to automate the process. The script will leave you with compiled binaries that you can copy to the relevant location and optionally an rpm which you can simply install instead of manually copying files to the necessary locations.

You need to read the README.txt file for full details, but to give you an idea of what’s involved, the build process is as follows:

Install some packages from the SLE SDK. Run the build script.

$ ./build

By default the plugins will be built to live in /opt/multimedia If you want them to live somewhere else then change the line

prefix=/opt/multimedia;

to reflect where you want to put them. E.g if you want them in your home directory you could use

prefix=”${HOME}/.multimedia”;

By default an rpm will be built but if you set the prefix to something in your home directory the rpm won’t be built as it’s assumed you’re specifying your home directory as the prefix because you don’t have root and hence can’t install an rpm.

Previously, Additional multimedia codec support for SLED 11 SP3

3 votes, average: 5.00 out of 53 votes, average: 5.00 out of 53 votes, average: 5.00 out of 53 votes, average: 5.00 out of 53 votes, average: 5.00 out of 5 (3 votes, average: 5.00 out of 5)
You need to be a registered member to rate this post.
Loading...

Tags: , ,
Categories: Desktop, SUSE Linux Enterprise Desktop, Technical Solutions

Disclaimer: As with everything else in the SUSE Blog, this content is definitely not supported by SUSE (so don't even think of calling Support if you try something and it blows up).  It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.

7 Comments

  1. By:yeoheric

    A feedback after installing the dependencies and running the script:
    1. You need to install rpmbuild – surprised it is not in the BuildRequires parameter, without it there will be no RPM.
    2. Even after creating the /opt/multimedia directory with user as owner, the rpm was created in extracted directory’s rpmbuild directory (e.g. /home/eyeoh/Downloads/multimediacodecs_sled12/rpmbuild/RPMS/x86_64/multimediacodecs-1.0-1417193641.rpm)
    3. Even after installing the built RPM, totem will not play MP4 files well, i.e. it still wants the H.264 decoder.

    I still find that Xine/UMPlayer/SMPlayer gives better support to multitude of media files.

    • By:mikewillis

      1] The need to install the rpm-build package if you want to build the rpm is stated in the README.txt.

      2] I don’t understand what you think the problem is here. What you describe is expected behaviour. Nothing in the README.txt tells you to manually create /opt/multimedia and set the user as owner.

      3] Did you log out and in again?

  2. By:KevinHansen

    First of all thank you for your work with the multimedia codec support for SLED! Much appreciated.

    I am having an issue with H.264 browser support in Firefox on SLED 12 and I am pretty sure that this should be included in your script right?

    Do I need to install anything besides your script, to get H.264 browser support working?

    Just let me know if you need any particular information about my setup, version numbers etc.

    Thank you in advance.

    Kind Regards,
    Kevin

    • By:KevinHansen

      I found the solution for this, which was simple. I forgot that I had updated Firefox manually to latest version, which hasn’t been an issue on SLED 11 SP3.

      However Firefox introduced the Cisco OpenH264 plugin with version 33 and apparently this plugin result in H.264 not working on SLED 12. Disabling it with media.gmp-gmpopenh264.provider.enabled false in about:config, removes the plugin from the list of installed plugins, however H.264 is still not supported.

      Changing back to Firefox 31 from SLED 12 repo solves the issue I had.

  3. By:bwgartner

    As above, thanks for your work on this. Noticed a few things as I went through the process:

    – the build for libdvdcss looks for various .sty files (which were absent for me), so I added “–disable-doc” to the configure options to effectively skip that portion
    – if one chooses another location both the “build” and “multimediacodecs.spec” need this modification, so you may want to highlight that in the “README.txt” file

    And as you might guess, with a simple tweak to the check within the “build” script, this process also seems to work just fine with SLES12 (with Workstation Extensions)

  4. By:chasecrum

    Great script!
    Fails OS level check on new installs of SLED12 SP1, but after commenting out the OS version check in the script, it worked like a charm. Everything’s working now, awesome job !

    • By:mikewillis

      Glad you got it working with SLED 12 SP1. Due to a change in employment I no longer use SLED, which is why I’ve not done an updated version.

      I don’t know what version of gstreamer is included in SP1 but if it’s newer then you can probably use newer versions of the various gstreamer plugins than the script uses. The versions of the plugins used by the script are the newest ones which I found worked with the version of gstreamer in SLED 12. If you want to investigate it’s basically a case of looking at the release dates of the various versions of the various plugin packages and comparing them with the release dates of whatever gstreamer is included in SP1. Or SLED SP2, or whatever version of SLED 12 is on whenever someone is reading this.

Comment

RSS