PROJET AUTOBLOG


Shaarli - Mitsu'liens

Site original : Shaarli - Mitsu'liens

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Firefox segfault contenus h.264

lundi 11 mai 2015 à 15:04
Un truc qui m'énervait ÉNORMÉMENT dernièrement c'était que parfois, au détour d'une page web, Firefox crashait. Plantait. Segfaultait. Bien vilain: Firefox freeze pendant une seconde, et pouf yaplu Firefox. Dans le terminal, juste un "segfault core dumped" qui aide pas vraiment.  J'ai regardé les sites où ça arrivait: Twitter, Vine, Paypal,... ces sites avaient en commun l'intégration de vidéos MP4 avec la balise <video> du HTML 5.  Tiens tiens.

Faut savoir que Firefox n'intègre pas de décodeur H.264: il se repose sur le décodeur matériel si disponible, ou le décodeur du système, au pire il utilise un plugin (openh264) "gentiment" fourni par Cisco pour que Mozilla n'ait pas à payer de licence -ultra coûteuse- pour lire ce format non libre. En dernier recours, les sites utilisent encore le plugin Flash qui dispose d'un décodeur H.264.

Sous GNU/Linux, ça donne souvent la situation suivante:
- Flashplugin plus maintenu, mais sait lire du bon vieux H.264 jusqu'au high profile
- openh264 donc
- le décodage matériel est *tousse* ...  AMD et NVIDIA n'ont pas grand chose à foutre des pilotes pour GNU/Linux, ne parlons même pas de pilote libre, et Intel a un retard assez... ouille
- .. et niveau système c'est le plus souvent gstreamer qui s'en charge

Aaaaaah gstreamer. Vous savez il y a 3 écoles principales:  libavcodec du FFmpeg et VLC etc, mplayer/mencoder, et gstreamer.  Pléthore de logiciels de lecture et encodage reposent sur l'un d'entre eux, parfois plusieurs.

Revenons à Firefox. La lecture se lance une fois, mais en voulant activer le son ou en voulant faire reboucler la lecture, pouf. Je remarque très rapidement qu'en désactivant gstreamer, ça ne plante plus:
>>> media.gstreamer.enabled;false

Du coup Vine fallback sur Flash, forcément. Lequel.. plante. Soit tout de suite, soit après 1 lecture (pas de rebouclage). On a droit au fameux "Désolé, le plugin Flash a planté :(" mais au moins Firefox reste en vie. Zut alors, je pensais qu'openh264 allait prendre le relais, mais non. Il existe une troisième voie:

>>> media.fragmented-mp4.gmp.enabled;true
>>> media.fragmented-mp4.exposed;true

Là Firefox va proposer l'utilisation d'un autre décodeur, donc le plugin Flash n'est plus utilisé. Ah par contre, la vidéo Vine se télécharge, mais.. rien n'est lu. Activons ce greffon:

>>> media.fragmented-mp4.ffmpeg.enabled;true

Eurêka ! Cette fois, la vidéo Vine est correctement lue, le son peut être activé sans problème, et la vidéo reboucle correctement.
Moralité:
- grrrr gstreamer
- grrrr Flash
- VOUS FAITES CHIER À UTILISER H.264 CE FORMAT NON LIBRE BORDEL

Bonus: activer toutes les fonctionnalités restantes sur la page https://www.youtube.com/html5 :
>>> media.mediasource.enabled;true
>>> media.mediasource.mp4.enabled;true

Voilà :)
(Permalink)
Feed is invalid - XML error: