Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Firefox 49, no H.264 support
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Sun Nov 13, 2016 6:40 pm    Post subject: [SOLVED] Firefox 49, no H.264 support Reply with quote

Hi! According to https://www.youtube.com/html5 my firefox has no H.264 and MSE & H.264 support.
On pages with html5 <video> tag with type="video/mp4" firefox tells "Video format or MIME type is not supported".
This happened after one of system updates (emerge -auvDN world), but i can't remeber that was updated.
I tried next steps to fix firefox:
1. Reinstall;
2. Clean profile;
3. Install all gstreamer-plugins (Although I have notebook with gentoo and almost same USE config which have H.264 support without gstreamer-plugins);
4. Reinstall/install libvpx, ffmpeg, libav;
Nothing helped.

Also in about:support there is line: Supports Hardware H264 Decoding = No; Failed to create H264 decoder.
Other video playback software (vlc, mpv, ffmpeg) works fine (even with hardware H.264 support).

How to know why firefox failing to use H.264?

My video card is NVIDIA GeForce GTX 560 Ti.


Last edited by nshibalov on Thu Nov 17, 2016 12:34 pm; edited 1 time in total
Back to top
View user's profile Send private message
vasettoo
Tux's lil' helper
Tux's lil' helper


Joined: 11 Nov 2012
Posts: 97

PostPosted: Sun Nov 13, 2016 11:07 pm    Post subject: Reply with quote

May be an issue with video driver - do you use the proprietary or open source one? Try older version (prior update you mentioned).
Best regards.
Back to top
View user's profile Send private message
sebB
l33t
l33t


Joined: 02 Mar 2011
Posts: 806
Location: S.O. France

PostPosted: Mon Nov 14, 2016 10:49 am    Post subject: Reply with quote

Is firefox build with the ffmpeg USE?
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Mon Nov 14, 2016 5:00 pm    Post subject: Reply with quote

Thank you for answers.

Quote:
May be an issue with video driver - do you use the proprietary or open source one? Try older version (prior update you mentioned).
Best regards.

I use proprietary nvidia-drivers 375.10-r (~amd64), downgrading to 361.28 didn't help.

Quote:
Is firefox build with the ffmpeg USE?

I can't find this USE flag for firefox. Global ffmeg USE flag is set. I have tried to compile firefox with and without system-* flags (system-cairo, system-libvpx), but no luck.
Back to top
View user's profile Send private message
charles17
Advocate
Advocate


Joined: 02 Mar 2008
Posts: 3664

PostPosted: Mon Nov 14, 2016 6:34 pm    Post subject: Re: Firefox 49, no H.264 support Reply with quote

nshibalov wrote:
Hi! According to https://www.youtube.com/html5 my firefox has no H.264 and MSE & H.264 support.
Did you check about:config for http://www.ghacks.net/2014/07/25/enable-mse-h2-64-support-youtube-firefox-right-now/?
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Mon Nov 14, 2016 8:31 pm    Post subject: Re: Firefox 49, no H.264 support Reply with quote

charles17 wrote:
nshibalov wrote:
Hi! According to https://www.youtube.com/html5 my firefox has no H.264 and MSE & H.264 support.
Did you check about:config for http://www.ghacks.net/2014/07/25/enable-mse-h2-64-support-youtube-firefox-right-now/?

Hi, yes I have checked all the options from tutorial, but it didn't help. As I have working H.264 in firefox 49 on notebook, I have found that options that control support of H.264 and MSE & H.264 on https://www.youtube.com/html5 are media.mp4 and media.mediasource.mp4 respectively and they are set to true on PC.
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Tue Nov 15, 2016 7:23 am    Post subject: Reply with quote

I have compiled firefox with debug USE flag and there is this message:
Code:
[6748] WARNING: Unable to create a decoder, no platform found.: file /var/tmp/portage/www-client/firefox-49.0/work/firefox-49.0/dom/media/platforms/PDMFactory.cpp, line 153

Is it related?
Back to top
View user's profile Send private message
Juippisi
Developer
Developer


Joined: 30 Sep 2005
Posts: 724
Location: /home

PostPosted: Tue Nov 15, 2016 9:18 am    Post subject: Reply with quote

sebB wrote:
Is firefox build with the ffmpeg USE?


Im quite sure the latest Firefox has a hard dependency on ffmpeg, so its no longer USE flag. Can you paste your ffmpeg USE flags, and Firefox USE flags?

emerge -pv firefox ffmpeg
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Tue Nov 15, 2016 12:23 pm    Post subject: Reply with quote

equery u firefox:
Code:
 * Found these USE flags for www-client/firefox-49.0:
 U I
 - - bindist              : Disable official Firefox branding (icons, name) which are not binary-redistributable according to upstream.
 - - custom-cflags        : Build with user-specified CFLAGS (unsupported)
 + - custom-optimization  : Build with user-specified compiler optimizations (-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)
 + + dbus                 : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
 - + debug                : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                            https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
 + + gmp-autoupdate       : Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profiles
 - - gtk2                 : Use the cairo-gtk2 rendering engine
 - - hardened             : Activate default security enhancements for toolchain (gcc, glibc, binutils)
 + + hwaccel              : Use hardware-accelerated rendering
 + + jemalloc             : Enable or disable jemalloc
 + + jit                  : Enable just-in-time compilation for improved performance. May prevent use of some PaX memory protection features in Gentoo Hardened.
 - - l10n_ach             : Acoli
 - - l10n_af              : Afrikaans
 - - l10n_an              : Aragonese
 - - l10n_ar              : Arabic
 - - l10n_as              : Assamese
 - - l10n_ast             : Asturian
 - - l10n_az              : Azerbaijani
 - - l10n_be              : Belarusian
 - - l10n_bg              : Bulgarian
 - - l10n_bn-BD           : Bengali (Bangladesh)
 - - l10n_bn-IN           : Bengali (India)
 - - l10n_br              : Breton
 - - l10n_bs              : Bosnian
 - - l10n_ca              : Catalan
 - - l10n_cak             : Kaqchikel
 - - l10n_cs              : Czech
 - - l10n_cy              : Welsh
 - - l10n_da              : Danish
 - - l10n_de              : German
 - - l10n_dsb             : Lower Sorbian
 - - l10n_el              : Modern Greek
 - - l10n_en-GB           : English (United Kingdom)
 - - l10n_en-ZA           : English (South Africa)
 - - l10n_eo              : Esperanto
 - - l10n_es-AR           : Spanish (Argentina)
 - - l10n_es-CL           : Spanish (Chile)
 - - l10n_es-ES           : Spanish (Spain)
 - - l10n_es-MX           : Spanish (Mexico)
 - - l10n_et              : Estonian
 - - l10n_eu              : Basque
 - - l10n_fa              : Persian
 - - l10n_ff              : Fulah
 - - l10n_fi              : Finnish
 - - l10n_fr              : French
 - - l10n_fy              : Western Frisian
 - - l10n_ga              : Irish
 - - l10n_gd              : Scottish Gaelic
 - - l10n_gl              : Galician
 - - l10n_gn              : Guarani
 - - l10n_gu              : Gujarati
 - - l10n_he              : Hebrew
 - - l10n_hi              : Hindi
 - - l10n_hr              : Croatian
 - - l10n_hsb             : Upper Sorbian
 - - l10n_hu              : Hungarian
 - - l10n_hy              : Armenian
 - - l10n_id              : Indonesian
 - - l10n_is              : Icelandic
 - - l10n_it              : Italian
 - - l10n_ja              : Japanese
 - - l10n_kk              : Kazakh
 - - l10n_km              : Central Khmer
 - - l10n_kn              : Kannada
 - - l10n_ko              : Korean
 - - l10n_lij             : Ligurian
 - - l10n_lt              : Lithuanian
 - - l10n_lv              : Latvian
 - - l10n_mai             : Maithili
 - - l10n_mk              : Macedonian
 - - l10n_ml              : Malayalam
 - - l10n_mr              : Marathi
 - - l10n_ms              : Malay (macrolanguage)
 - - l10n_nb              : Norwegian Bokmål
 - - l10n_nl              : Dutch
 - - l10n_nn              : Norwegian Nynorsk
 - - l10n_or              : Oriya (macrolanguage)
 - - l10n_pa              : Punjabi
 - - l10n_pl              : Polish
 - - l10n_pt-BR           : Portuguese (Brazil)
 - - l10n_pt-PT           : Portuguese (Portugal)
 - - l10n_rm              : Romansh
 - - l10n_ro              : Romanian
 + + l10n_ru              : Russian
 - - l10n_si              : Sinhala
 - - l10n_sk              : Slovak
 - - l10n_sl              : Slovenian
 - - l10n_son             : Songhai languages
 - - l10n_sq              : Albanian
 - - l10n_sr              : Serbian
 - - l10n_sv              : Swedish
 - - l10n_ta              : Tamil
 - - l10n_te              : Telugu
 - - l10n_th              : Thai
 - - l10n_tr              : Turkish
 - - l10n_uk              : Ukrainian
 - - l10n_uz              : Uzbek
 - - l10n_vi              : Vietnamese
 - - l10n_xh              : Xhosa
 - - l10n_zh-CN           : Chinese (China)
 - - l10n_zh-TW           : Chinese (Taiwan)
 - - pgo                  : Add support for profile-guided optimization using gcc-4.5, for faster binaries. This option will double the compile time.
 + + pulseaudio           : Add support for PulseAudio sound server
 + + skia                 : Enable the SKIA engine for 2D rendering as an alternative to cairo
 + + startup-notification : Enable application startup event feedback mechanism
 + + system-harfbuzz      : Use the system-wide media-libs/harfbuzz and media-gfx/graphite2 instead of bundled.
 + + system-icu           : Use the system-wide dev-libs/icu instead of bundled.
 + + system-jpeg          : Use the system-wide media-libs/libjpeg-turbo instead of bundled.
 + + system-libevent      : Use the system-wide dev-libs/libevent instead of bundled.
 + + system-libvpx        : Use the system-wide media-libs/libvpx instead of bundled.
 + + system-sqlite        : Use the system-wide dev-db/sqlite installation with secure-delete enabled
 - - test                 : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use
                            anymore
 - - wifi                 : Enable wireless network functions


equery u ffmeg
Code:

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-video/ffmpeg-2.8.6:
 U I
 + + X                      : Add support for X11
 + + aac                    : Enable support for MPEG-4 AAC Audio
 - - aacplus                : AAC+ encoding via media-libs/libaacplus.
 - - abi_x86_32             : 32-bit (x86) libraries
 + + alsa                   : Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
 - - amr                    : Enables Adaptive Multi-Rate Audio support
 - - amrenc                 : Enables Adaptive Multi-Rate Audio encoding support with media-libs/vo-amrwbenc.
 + + bluray                 : Enable playback of Blu-ray filesystems
 - - bs2b                   : Enables media-libs/libbs2b based Bauer stereo-to-binaural filter.
 + + bzip2                  : Use the bzlib compression library
 - - cdio                   : Enables audio CD grabbing with dev-libs/libcdio.
 - - celt                   : Adds Xiph CELT audio decoding support via media-libs/celt
 - - cpu_flags_x86_3dnow    : Use the 3DNow! instruction set
 - - cpu_flags_x86_3dnowext : Use the Enhanced 3DNow! instruction set
 + + cpu_flags_x86_avx      : Adds support for Advanced Vector Extensions instructions
 - - cpu_flags_x86_avx2     : Adds support for Advanced Vector Extensions 2 instructions
 - - cpu_flags_x86_fma3     : Use the Fused Multiply Add 3 instruction set ([fma] in cpuinfo)
 - - cpu_flags_x86_fma4     : Use the Fused Multiply Add 4 instruction set
 + + cpu_flags_x86_mmx      : Use the MMX instruction set
 + + cpu_flags_x86_mmxext   : Use the Extended MMX instruction set (a subset of SSE) ([mmxext] or [sse] in cpuinfo)
 + + cpu_flags_x86_sse      : Use the SSE instruction set
 + + cpu_flags_x86_sse2     : Use the SSE2 instruction set
 + + cpu_flags_x86_sse3     : Use the SSE3 instruction set ([pni] in cpuinfo, NOT ssse3)
 + + cpu_flags_x86_sse4_1   : Enable SSE4.1 instruction support
 + + cpu_flags_x86_sse4_2   : Enable SSE4.2 instruction support
 + + cpu_flags_x86_ssse3    : Use the SSSE3 instruction set (NOT sse3/pni)
 - - cpu_flags_x86_xop      : Enable the XOP instruction set
 - - cpudetection           : Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)
 - - debug                  : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                              https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
 - - doc                    : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
 + + encode                 : Add support for encoding of audio or video files
 - - examples               : Install examples, usually source code
 - - faac                   : Use external faac library for AAC encoding
 - - fdk                    : Use external fdk-aac library for AAC encoding
 + + fftools_aviocat        : cat's a URL to another one, useful for dumping streams.
 + + fftools_cws2fws        : converts cws files (Macromedia Flash, compressed) to fws ones (Macromedia Flash, uncompressed).
 + + fftools_ffescape       : Escapes an input string, adopting the av_get_token() escaping logic.
 + + fftools_ffeval         : A simple expression evalutor.
 + + fftools_ffhash         : Computes a file's digest using libavutil algorithms.
 + + fftools_fourcc2pixfmt  : Shows the relationships between rawvideo pixel formats and FourCC tags.
 + + fftools_graph2dot      : A tool to convert a libavfilter graph to a dot file.
 + + fftools_ismindex       : A tool for creating smooth streaming manifests.
 + + fftools_pktdumper      : Dumps packets as demuxed by libavformat.
 + + fftools_qt-faststart   : Rearranges a Quicktime file to facilitate network streaming.
 + + fftools_sidxindex      : Write an MPD file for fragmented MP4 files with a sidx index at the start of the file.
 + + fftools_trasher        : Writes burts of random data into a file. Great for testing error robustness/resilience/concealment.
 - - flite                  : Adds a text-to-speech filter based on app-accessibility/flite.
 - - fontconfig             : Support for configuring and customizing font access via media-libs/fontconfig
 - - frei0r                 : Enable frei0r wrapping in libavfilter
 - - fribidi                : Enables fribidi support in the drawtext filter.
 - - gme                    : Enables support for media-libs/game-music-emu for playing various video game music formats.
 - - gnutls                 : Add support for net-libs/gnutls (TLS 1.0 and SSL 3.0 support)
 + + gpl                    : Build GPL code. Should be enabled unless you require LGPL binaries.
 - - gsm                    : Add support for the gsm lossy speech compression codec
 + + hardcoded-tables       : Use pre-calculated tables rather than calculating them on the fly.
 + + iconv                  : Enable support for the iconv character set conversion library
 - - iec61883               : Support for FireWire DV/HDV input device using media-libs/libiec61883.
 - - ieee1394               : Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
 - - jack                   : Add support for the JACK Audio Connection Kit
 - - jpeg2k                 : Support for JPEG 2000, a wavelet-based image compression format
 - - ladspa                 : Enable the ability to support ladspa plugins
 - - libass                 : SRT/SSA/ASS (SubRip / SubStation Alpha) subtitle support
 - - libcaca                : Add support for colored ASCII-art graphics
 - - librtmp                : Enables Real Time Messaging Protocol using librtmp (media-video/rtmpdump) in addition to FFmpeg's native implementation.
 - - libsoxr                : Enables audio resampling through media-libs/soxr.
 - - libv4l                 : Uses media-libs/libv4l for video4linux instead of direct calls. Adds support for more devices via the userspace library.
 - - lzma                   : Support for LZMA (de)compression algorithm
 - - modplug                : Add libmodplug support for playing SoundTracker-style music files
 + + mp3                    : Add support for reading mp3 files
 + + network                : Enables network streaming support
 - - openal                 : Add support for the Open Audio Library
 + + opengl                 : Add support for OpenGL (3D graphics)
 - - openssl                : Enables dev-libs/openssl support. Adds support for encrypted network protocols (TLS/HTTPS).
 - - opus                   : Adds (decoding) support for the Opus codec via media-libs/opus.
 - - oss                    : Add support for OSS (Open Sound System)
 - - pic                    : Force shared libraries to be built as PIC (this is slower)
 + + postproc               : Build and install libpostproc.
 + + pulseaudio             : Add support for PulseAudio sound server
 - - quvi                   : Adds support for playing media from Internet services using the quvi project.
 - - samba                  : Add support for SAMBA (Windows File and Printer sharing)
 - - schroedinger           : Enable Dirac video support (an advanced royalty-free video compression format) via libschroedinger (high-speed implementation in C of the Dirac
                              codec).
 + + sdl                    : Add support for Simple Direct Layer (media library)
 - - snappy                 : Enable app-arch/snappy support. Required for e.g. Vidvox Hap encoder.
 - - speex                  : Add support for the speex audio codec (used for speech)
 + + ssh                    : Enable SSH/sftp support via net-libs/libssh.
 - - static-libs            : Build static versions of dynamic libraries as well
 - - test                   : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use
                              anymore
 - - theora                 : Add support for the Theora Video Compression Codec
 + + threads                : Add threads support for various packages. Usually pthreads
 + + truetype               : Add support for FreeType and/or FreeType2 fonts
 - - twolame                : Enables MP2 encoding via media-sound/twolame as an alternative to the internal encoder.
 - - v4l                    : Enable support for video4linux (using linux-headers or userspace libv4l libraries)
 + + vaapi                  : Enable Video Acceleration API for hardware decoding
 + + vdpau                  : Enable the Video Decode and Presentation API for Unix acceleration interface
 + + vorbis                 : Add support for the OggVorbis audio codec
 + + vpx                    : Enables vp8 codec support using libvpx: Decoding vp8 does not require this to be enabled but libvpx can also be used for decoding; encoding vp8
                              requires this useflag to be enabled though.
 - - wavpack                : Add support for wavpack audio compression tools
 + + webp                   : Enables WebP encoding with media-libs/libwebp.
 + + x264                   : Enable h264 encoding using x264
 + + x265                   : Enables HEVC encoding with media-libs/x265.
 + + xcb                    : Support the X C-language Binding, a replacement for Xlib
 + + xvid                   : Add support for xvid.org's open-source mpeg-4 codec
 + + zlib                   : Add support for zlib (de)compression
 - - zvbi                   : Enables media-libs/zvbi based teletext decoder.


equery u virtual/ffmeg
Code:
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for virtual/ffmpeg-9-r2:
 U I
 + + X          : Add support for X11
 - - abi_x86_32 : 32-bit (x86) libraries
 + + encode     : Add support for encoding of audio or video files
 - - gsm        : Add support for the gsm lossy speech compression codec
 - - jpeg2k     : Support for JPEG 2000, a wavelet-based image compression format
 - - libav      : Prefer libav over ffmpeg whenever both are supported
 + + mp3        : Add support for reading mp3 files
 - - opus       : Use the external opus library for encoding and decoding.
 + + sdl        : Add support for Simple Direct Layer (media library)
 - - speex      : Add support for the speex audio codec (used for speech)
 - - theora     : Add support for the Theora Video Compression Codec
 - - threads    : Add threads support for various packages. Usually pthreads
 + + truetype   : Add support for FreeType and/or FreeType2 fonts
 + + vaapi      : Enable Video Acceleration API for hardware decoding
 + + vdpau      : Enable the Video Decode and Presentation API for Unix acceleration interface
 + + x264       : Enable h264 encoding using x264
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Thu Nov 17, 2016 12:24 pm    Post subject: Reply with quote

I have found the cause of the problem, it is Plex Media Server from an unofficial overlay (megacoffee). This package contains /usr/lib64/plexmediaserver/libavcodec.so.57 which Firefox tries to link against and fails to do so (system-wide installed ffmpeg contains libavcodec.so.56).
Here is a piece of source that hepled understand this (dom/media/platform/ffmpeg/FFmpegRuntimeLinker.cpp):
Code:

static const char* sLibs[] = {
#if defined(XP_DARWIN)
  "libavcodec.57.dylib",
  "libavcodec.56.dylib",
  "libavcodec.55.dylib",
  "libavcodec.54.dylib",
  "libavcodec.53.dylib",
#else
  "libavcodec-ffmpeg.so.57",
  "libavcodec-ffmpeg.so.56",
  "libavcodec.so.57",
  "libavcodec.so.56",
  "libavcodec.so.55",
  "libavcodec.so.54",
  "libavcodec.so.53",
#endif
};


Is it possible to somehow fix the situation without uninstalling Plex Media Server?
Back to top
View user's profile Send private message
heiwa
n00b
n00b


Joined: 24 Oct 2012
Posts: 70

PostPosted: Thu Nov 17, 2016 1:24 pm    Post subject: Reply with quote

Create a symbolic link libavcodec-ffmpeg.so.56 -> libavcodec.so.56 ?
Back to top
View user's profile Send private message
nshibalov
n00b
n00b


Joined: 14 Aug 2015
Posts: 16

PostPosted: Thu Nov 17, 2016 6:31 pm    Post subject: Reply with quote

heiwa wrote:
Create a symbolic link libavcodec-ffmpeg.so.56 -> libavcodec.so.56 ?

Thank you. I wonder why this idea has not occurred to me :).
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum