Results 1 to 7 of 7

Thread: problem with playing video files

Threaded View

  1. #6

    Re: problem with playing video files

    An update for SLED15 SP1:

    To play HTML5 videos in format H.264/AVC+AAC from websites in web browser Firefox ESR 68 you have to rebuild the rpm packages libavcodec57 and libavformat57.

    Firefox ESR 68 use the libraries libavcodec57 and libavformat57 for video codec and audio codec decoding. Both libraries are part of ffmpeg.
    https://en.wikipedia.org/wiki/FFmpeg

    Libavcodec57 has in the source code tar ball (ffmpeg-3.4.2.tar.xz) from upstream a H.264/AVC decoder and an AAC decoder "on board".

    SUSE don't want to pay license fees for a H.264/AVC decoder to MPEG LA (https://www.mpegla.com/).
    SUSE don't want to pay license fees for an AAC decoder to VIA Licensing (https://www.via-corp.com/).

    For this reason SUSE disabled the H.264/AVC decoder and the AAC decoder in rpm package libavcodec57.

    Libavcodec57 is available in repository SLE-Module-Desktop-Applications15-SP1-Updates.
    Libavformat57 is available in repository SLE-Product-WE15-SP1-Updates.

    This article describe the steps to rebuild rpm package libavcodec57 and libavformat57 with enabled H.264/AVC decoder and AAC decoder:

    Warning: For a H.264/AVC decoder and an AAC decoder in binary form (=> RPM package) license fees may apply!

    You should prepare your SLED15 installation for rebuilding a rpm package:

    Code:
    # su
    # zypper install rpm-build
    rpm-build is available in repository SLE-Module-DevTools15-SP1-Pool. If nessecary, activate this repository with the command:
    https://forums.suse.com/showthread.p...or-SLES-15-SP1
    Code:
    # su
    # SUSEConnect --list-extensions
    # SUSEConnect -p sle-module-development-tools/15.1/x86_64
    Now you can download the source rpm package (*.src.rpm). An easy way is by:

    Code:
    # su
    # zypper install libavcodec57
    # zypper install libavformat57
    # zypper source-download --no-delete --directory /tmp
    => Cancel download with key combination <Ctrl>-<C> when ffmpeg source rpm package is fully downloaded
    => see chaptre "6.1.3.5 - Installing or Downloading Source Packages" in SUSE Linux Enterprise Desktop 15 SP1 - Administration Guide" for more information (https://documentation.suse.com/).

    Extract /tmp/ffmpeg-3.4.2-4.27.1.src.rpm (with file-roller) and copy all source files to /usr/src/packages/SOURCES
    Code:
    ls -alh /usr/src/packages/SOURCES
    -rw-------  1 root root  122 26. Aug 2016  baselibs.conf
    -rw-------  1 root root 1.6K  4. Jan 16:41 enable_decoders
    -rw-------  1 root root  723  7. Sep 2017  enable_encoders
    
    -rw-------  1 root root 8.1M 15. Feb 2018  ffmpeg-3.4.2.tar.xz
    -rw-------  1 root root  473 15. Feb 2018  ffmpeg-3.4.2.tar.xz.asc
    -rw-------  1 root root  503 20. Feb 2017  ffmpeg-arm6l.diff
    -rw-------  1 root root 2.3K 31. Mai 2017  ffmpeg-codec-choice.diff
    -rw-------  1 root root  724 15. Okt 2018  ffmpeg-CVE-2017-17555.diff
    -rw-------  1 root root  411 23. Okt 2018  ffmpeg-CVE-2018-12458.patch
    -rw-------  1 root root  697 15. Okt 2018  ffmpeg-CVE-2018-13300.patch
    -rw-------  1 root root  59K  8. Jul 04:09 ffmpeg-CVE-2018-13301.patch
    -rw-------  1 root root  607 16. Jul 2018  ffmpeg-CVE-2018-13302.patch
    -rw-------  1 root root  770 23. Okt 2018  ffmpeg-CVE-2018-13305.patch
    -rw-------  1 root root  562 16. Nov 2018  ffmpeg-CVE-2018-14394.patch
    -rw-------  1 root root  554 15. Nov 2018  ffmpeg-CVE-2018-14395.patch
    -rw-------  1 root root  660 15. Okt 2018  ffmpeg-CVE-2018-15822.patch
    -rw-------  1 root root 3.8K 27. Jul 2018  ffmpeg-CVE-2018-1999010.patch
    -rw-------  1 root root 1.2K 27. Jul 2018  ffmpeg-CVE-2018-1999011.patch
    -rw-------  1 root root 1.1K 27. Jul 2018  ffmpeg-CVE-2018-1999012.patch
    -rw-------  1 root root 1.1K 27. Jul 2018  ffmpeg-CVE-2018-1999013.patch
    -rw-------  1 root root 1.6K 10. Jun 2019  ffmpeg-CVE-2019-12730.patch
    -rw-------  1 root root  573 19. Nov 12:08 ffmpeg-CVE-2019-17542.patch
    -rw-------  1 root root 2.0K 12. Jun 2019  ffmpeg-CVE-2019-9718.patch
    -rw-------  1 root root  976  2. Nov 2017  ffmpeg-libcdio_cdda-pkgconfig.patch
    -rw-------  1 root root 3.1K  2. Nov 2017  ffmpeg-new-coder-errors.diff
    -rw-------  1 root root  219 12. Jan 2016  ffmpeg-rpmlintrc
    -rw-------  1 root root  59K  4. Jan 17:11 ffmpeg.spec
    Install all necessaries dependencies as rpm packages for rebuild ffmpeg:
    alsa-devel fribidi-devel libbz2-devel libexpat-devel lib-devel enca-devel libgmpxx4 gmp-devel libnettle-devel libtasn1-devel p11-kit-devel tack xz-devel libgnutls-devel ncurses-devel readline-devel
    libxml2-devel celt glu-devel libdc1394-devel libjack-devel libjacknet0 libjackserver0 libraw1394-devel libtheora0 libwebpdecoder2 libwebextras0 libbluray-devel libcelt-devel libjack-devel libtheora-devel
    libwebp-devel libSDL2-devel libSDL2-2_0-0 libiso9660-10 libudf0 libswresample-devel freetype2-devel fontconfig-devel libcdio++0 libcdio-devel nasm libavresample3 libavresample-devel libavcodec-devel
    libavformat-devel libcdio-paranoia-devel graphite2-devel libicu-devel libogg-devel libpulse-devel speexdsp-devel harfbuzz-devel libvorbis-devel speex-devel libtasn1-devel ncurses-devel readline-devel
    libgnutls-devel glu-devel libgsm-devel libmp3lame-devel libopus-devel libraw1394-devel libtwolame-devel libvdpau-devel libwebp-devel openjpeg-devel libass-devel libbluray-devel libdc1394-devel
    libcdio-devel libcdio-paranoia-devel libva-devel

    Add two lines to /usr/src/packages/SOURCES/enable_decoders:
    Code:
    aac # enable AAC decoder - license fees may apply
    h264 # enable H.264/AVC decoder - license fees may apply
    Modify /usr/src/packages/SOURCES/ffmpeg.spec:

    1.) Replace all lines with:
    Old:
    Code:
    This build of ffmpeg is limited in the number of codecs supported.
    New:
    Code:
    Special version - with H.264/AVC decoder and AAC decoder - license fees may apply.
    2.) Remove lines:
    Code:
    BuildRequires:  ladspa-devel
    BuildRequires:  pkgconfig(liboil-0.3) >= 0.3.15
    BuildRequires:  pkgconfig(zvbi-0.2)
    
    --enable-ladspa \
    --enable-libzvbi \
    3.) Modify this lines:

    Old:
    Code:
    --disable-decoder=mpeg4,h263,h264,hevc,vc1 \
    New:
    Code:
    --disable-decoder=mpeg4,h263,hevc,vc1 \
    Old:
    Code:
    for i in MPEG4 H263 H264 HEVC VC1; do
    New:
    Code:
    for i in MPEG4 H263 HEVC VC1; do
    You should not enable H.265/HEVC decoder because Firefox does not support HTML5 videos with H.265/HEVC. See for more information:
    https://developer.mozilla.org/en-US/.../Media/Formats
    => Web video codec guide

    Take a backup of the modified versions of ffmpeg.spec and enable_decoders.

    Start the rebuild:
    Code:
    # su
    # mkdir /usr/src/packages/tmp (if /var/tmp and /tmp are mounted with --noexec mount option)
    # export TMPDIR=/usr/src/packages/tmp (if /var/tmp and /tmp are mounted with --noexec mount option)
    # cd /usr/src/packages/SOURCES
    # rpmbuild -ba --clean ffmpeg.spec
    => wait some minutes
    Prepare your SLED installation for RPM package signing with GPG key. Please read:
    Code:
    # man rpmsign
    for more information about RPM package signing with GPG.

    Install your GPG key for RPM package signing:
    Code:
    # su
    # yast2 repositories
    => button "gpg key"
    => button "add"
    Sign the brand new RPM packages with your own GPG key:
    Code:
    # rpm --addsign /usr/src/packages/RPMS/x86_64/libavcodec57-3.4.2-4.27.1.x86_64.rpm
    # rpm --addsign /usr/src/packages/RPMS/x86_64/libavformat57-3.4.2-4.27.1.x86_64.rpm
    Sign the brand new RPM source package with your own GPG key:
    Code:
    # rpm --addsign /usr/src/packages/SRPMS/ffmpeg-3.4.2-4.27.1.src.rpm
    Check the RPM signatures:
    Code:
    # rpm --checksig /usr/src/packages/RPMS/x86_64/libavcodec57-3.4.2-4.27.1.x86_64.rpm
    => libavcodec57-3.4.2-4.27.1.x86_64.rpm: digests signatures OK
    
    # rpm --checksig /usr/src/packages/RPMS/x86_64/libavformat57-3.4.2-4.27.1.x86_64.rpm
    => libavformat57-3.4.2-4.27.1.x86_64.rpm: digests signatures OK
    
    # rpm --checksig /usr/src/packages/SRPMS/ffmpeg-3.4.2-4.27.1.src.rpm
    => ffmpeg-3.4.2-4.27.1.src.rpm: digests signatures OK
    Take a backup of this two new RPM packages and of the new RPM source package.

    Install the brand new RPM packages and check the installation of them:
    Code:
    # su
    # zypper install /usr/src/packages/RPMS/x86_64/libavcodec57-3.4.2-4.27.1.x86_64.rpm
    # zypper install /usr/src/packages/RPMS/x86_64/libavformat57-3.4.2-4.27.1.x86_64.rpm
    # rpm --verify libavcodec57
    # rpm --verify libavformat57
    # rpm --query --info libavcodec57
    => Special version - with H.264/AVC decoder and AAC decoder - license fees may apply.
    
    # rpm --query --info libavformat57
    => Special version - with H.264/AVC decoder and AAC decoder - license fees may apply.
    Test the brand new RPM's with some HTML5-Testvideos and HTML5-Audios:
    https://tools.woolyss.com/html5-audio-video-tester/

    http://camendesign.com/code/video_fo...body/test.html

    http://demo.nimius.net/video_test/

    https://base-n.de/webm/VP9%20Sample.html

    https://hpr.dogphilosophy.net/test/

    Be aware of the still missing hardware video acceleration (by Intel GPU => VA-API) for HTML5-videos in web browser Firefox:
    https://bugzilla.mozilla.org/show_bug.cgi?id=563206
    Last edited by AndreasMeyer; 05-Jan-2020 at 16:30.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •