2013-06-05 4 views
11

La dernière version de Chrome (version 27.0.1453.110 m) au 5 juin 2013 ne lit pas les vidéos mp4. Pour un exemple W3Schools Video Sandbox me donne des contrôles vidéo et rien d'autre. (Désolé ne peut pas poster une capture d'écran, juste inscrit à StackO.)MP4 ne fonctionne pas sur la version Chrome 27.0

Quelqu'un sait pourquoi? et une solution?

Oui:

Il y a un répondu question comme

chrome could play html5 mp4 video but html5test said chrome did not support mp4 video codec

et

Il y a une question sans réponse comme ceci:

html5 video issue with chrome

Répondre

8

Après avoir exécuté le même problème - dont voici quelques de mes pensées:

Comme il ne touche que Chrome (autres navigateurs fonctionnent très bien avec VideoForEverybody solution) la solution que je l'ai utilisé est:

  • pour chaque fichier mp4, créez un fichier mp4 codé Theora (example.mp4 - > example_c.mp4)
  • appliquent js suivantes:

    if (window.chrome) 
        $("[type=video\\\/mp4]").each(function() 
        { 
         $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4")); 
        }); 
    

présents mais malheureusement Incontestablement, c'est un mauvais bidouillage Chrome, mais bon, au moins cela fonctionne.

+0

Sur quelles machines la prise en charge de Chrome pour h.264 a-t-elle été supprimée? CanIUse.com rapporte que chrome supporte h.264: http://caniuse.com/#search=mp4 –

+0

Il y a un coma là pour une raison;) Oui - CanIUse rapporte un support continu, bien que cela ne signifie pas que le problème est n'est pas là. Je pensais que cela pouvait être dû au fait que Chrome supprimait le support, allant vers le webm, mais cela pourrait aussi bien être un bug. Jetez un coup d'œil sur le rapport de bug auquel j'ai été lié. – eithed

3

J'ai eu le même problème, même si je ne l'ai pas eu de réponse, j'ai essayé de le résoudre d'une autre manière, voici ce que je faisais:

Tout d'abord, intégrer la vidéo dans votre code html:

<video id="videoId" width="100%" autoplay loop> 
    <source src="main.webm" type="video/webm"> 
    <source src="main.mp4" type="video/mp4"> 

Your browser does not support the video tag. 
</video> 

détectera alors si le navigateur est chrome:

var isChrome = !!window.chrome; 
var isIE = /*@[email protected]*/false; 

Si le chrome, remplacer la vidéo avec la version WebM. (Pour ceux qui ne sont pas confrontés au problème eux-mêmes: si vous incorporez à la fois mp4 et WebM, chrome ne jouera aucun d'entre eux, de sorte que vous devez intégrer « WebM » uniquement)

if(isChrome) { 
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>')); 
} 

Et comme pour IE: dans mon cas, je l'ai remplacé la vidéo html5 avec une image:

if(isIE) { 
$("#videoId").replaceWith($('<img id="videoId" src="img/video.jpg" />')); 
} 
+0

J'ai aussi un script pour détecter firefox et mettre à jour la source vidéo au format ogg. J'ai pensé à mettre à jour le script pour que Chrome joue webm, mais ce n'est pas si important que je ne puisse pas lire la vidéo sur cette machine. ** Combien de mes utilisateurs ont le même problème? ** –

0

la réponse est dans un précédent post, bien que difficile à trouver:

chrome could play html5 mp4 video but html5test said chrome did not support mp4 video codec

Il s'agit de l'élimination progressive du support mp4 dans Chrome en faveur du format webm open. Actuellement, le support du navigateur semble faux. Voir le poste pour les détails informatifs.

Le forum Cromium fournit des informations supplémentaires sur le support du codec.

Espérons que cela aide.

0

J'ai aussi ce problème sur la version de Chrome: 28.0.1500.72 sur Windows7 64bit. Bien que cela n'affecte pas la même version de Chrome sur WinXP. De ce que j'ai lu ce problème est très sporadique sur différents hôtes en fonction d'un certain nombre de variables. Cependant, grâce à quelques jquery rapides, j'ai pu résoudre ce problème pour mes utilisateurs potentiels de Chrome.

Merci Sony plat pour moi pointant dans cette direction

var isChrome = !!window.chrome; 
var isIE = /*@[email protected]*/false; 

if(isChrome) { 
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>')); 
} 
3

Il semble que Chrome ne charge la première vidéo déclaré. Donc, pour Chrome en train de lire webMV, déclarez d'abord la vidéo webMV, puis la vidéo mp4, et ainsi de suite.

0

Merci eithedog. Ce code fonctionne pour moi de jouer vidéo sur Chrome en utilisant tag « vidéo »

if (window.chrome) { 
       $("[type=video\\\/mp4]").each(function() { 
        $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4")); 
       }); 
      } 
Questions connexes