2013-06-05 12 views
11

L'ultima versione di Chrome (versione 27.0.1453.110 m) a partire dal 5 giugno 2013 non riproduce video mp4. Ad esempio, W3Schools Video Sandbox mi fornisce controlli video e nient'altro. (Non è possibile pubblicare una schermata, è sufficiente registrarsi su StackO.)MP4 non in esecuzione su Chrome versione 27.0

Qualcuno sa perché ?? e una correzione?

Sì:

C'è un risposto domanda come questa

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

e

C'è un senza risposta domanda come questa:

html5 video issue with chrome

risposta

8

Dopo aver eseguito lo stesso problema - here're alcuni dei miei pensieri:

, poiché colpisce solo Chrome (altri browser funzionano bene con VideoForEverybody soluzione) la soluzione che ho usato è:

  • per ogni file mp4, creare un file MP4 codificati Theora (example.mp4 - > example_c.mp4)
  • applicano seguenti JS:

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

Unfort unicamente è un cattivo hack di Chrome, ma hey, almeno funziona.

+0

Quali macchine sono state rimosse il supporto Chrome per h.264? CanIUse.com riporta che chrome supporta h.264: http://caniuse.com/#search=mp4 –

+0

C'è un coma lì per un motivo;) Sì - CanIUse segnala il supporto continuo, sebbene ciò non significhi che il problema non sia ci sono. Ho pensato che potrebbe essere dovuto alla rimozione del supporto da parte di Chrome, alla ricerca del webm, ma potrebbe anche essere un bug. Dai un'occhiata al bug report a cui mi sono collegato. – eithed

3

ho avuto lo stesso problema, anche se non ho ottenuto alcuna risposta, ho cercato di risolvere in un altro modo, ecco quello che ho fatto:

In primo luogo, incorporare il video nel tuo 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> 

Poi rilevare se il Browser è Chrome:

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

Se il suo Chrome, sostituire il video con la versione WebM. (Per coloro che non hanno affrontato il problema se stessi: se si incorpora sia mp4 e WebM, Chrome non giocare a qualunque di loro, in modo da avere incorporare "WebM" solamente)

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

E per quanto riguarda IE: nel mio caso ho sostituito il video HTML5 con un'immagine:

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

Ho anche uno script per rilevare firefox e aggiornare la sorgente video in un formato ogg. Ho pensato di aggiornare lo script in modo che Chrome riproduca webm, ma non è così importante che non riesca a riprodurre il video su questo unico computer. ** Quanti dei miei utenti hanno lo stesso problema ?? ** –

0

Ho questo problema anche nella versione di Chrome: 28.0.1500.72 su Windows7 64 bit. Anche se non influisce sulla stessa versione di Chrome su WinXP. Da quello che ho letto questo problema è molto sporadico su host diversi a seconda di un numero di variabili. Tuttavia, grazie a qualche rapido jQuery, sono riuscito a risolvere questo problema per i miei potenziali utenti di Chrome.

Grazie Sony piano per avermi in questa direzione

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

Sembra che Chrome carica il primo video ha dichiarato. Quindi, per la riproduzione di webMV da parte di Chrome, devi prima dichiarare il video webMV, quindi quello mp4 e così via.

0

Grazie Eithedog. Questo codice sta lavorando per me giocare video su Chrome utilizzando tag "video"

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