web-dev-qa-db-fra.com

Pourquoi certains fichiers MP4 ne sont-ils pas lus via HTML5?

C'est étrange, certains fichiers MP4 seront lus en HTML5, mais d'autres non. Voici une page de test http://psdtucss.com/test/test2.html , ouvrez-la dans Chrome 19.0.1084.46 m. ​​Le premier MP4 joue, mais l'autre pas. Quelle est la raison. Le code est très simple:

<h3>the first mp4 file can play</h3> 
<p><video width="640" height="264" controls="controls"><source src="1.mp4" type="video/mp4" />Your browser does not support the video tag.</video></p> 
<h3>but the other can't play</h3> 
<p><video width="640" height="264" controls="controls"><source src="2.mp4" type="video/mp4" />Your browser does not support the video tag.</video></p>

Comment puis-je réparer cela?

J'ai essayé videojs, mais certains fichiers MP4 ne sont toujours pas lus. La page de test est ici: http://psdtucss.com/test/test.html

18
Frank Lv

mp4 n'est que le format conteneur. Il peut contenir de la vidéo et de l'audio dans un certain nombre de différents codecs. Les joueurs (y compris ceux d'un navigateur) doivent prendre en charge le format de conteneur et tous les codecs utilisés afin de lire une vidéo correctement.

L'utilisation de VideoJS est certainement une bonne idée, elle gère de nombreuses solutions de contournement spécifiques au navigateur pour vous.


Cependant, cela ne résout pas un problème: il n'y a pas de codec vidéo unique pris en charge dans tous les navigateurs. (Voir aussi Wikipedia: vidéo HTML5: Browser_support )

La solution pratique consiste probablement à fournir deux versions : h264 dans un conteneur mp4 et ce qui est généralement appelé webm (VP8 video et vorbis audio dans un conteneur Matroska spécifique) ). Avec ces deux, vous couvrez tous les principaux navigateurs.


Pour la conversion/recodage vidéo, certains outils et services sont disponibles. Je n'ai aucune idée de votre système d'exploitation ou de vos exigences. Donc, juste comme une supposition sauvage:

Quelque chose que j'ai utilisé pour aider un ami à publier quelques-uns vidéos sur son petit blog est ce script Shell utilisant ffmpeg pour la conversion. Cela laisse encore beaucoup de potentiel d'amélioration (dans toute la qualité vidéo, les performances et le codage) mais devrait être suffisant pour commencer.

18
zpea

Votre vidéo 1.mp4 est encodée à l'aide de h.264 mais pas la vidéo 2.mp4. demandez à MediaInfo de le vérifier.

8
Sany Liew

La première vidéo utilise l'encodage h264 qui est pris en charge par tout sauf Firefox et Opera. La deuxième vidéo utilise le codage vidéo MPEG-4 qui n'est pas pris en charge par les navigateurs. Les seuls codecs vidéo largement pris en charge sont Theora, H.264 et VP8.

MPEG-4 Part 2 le codec vidéo est différent du format de conteneur MPEG-4 Part 14

8
Dennis

MP4 prend en charge plusieurs codecs. Certains lecteurs ne prennent pas en charge tous les codecs (certains codes nécessitent une licence ou certains codecs ont été publiés après l'écriture du navigateur).

3
Peter Ritchie