Video標簽播放視頻?谷歌瀏覽器?safari?? 谷歌瀏覽器播放不了mp4格式的視頻的原因


webm格式和mp4格式,判斷了瀏覽器能否支持的視頻類型后,給了一個if判斷,如果是支持mp4格式,就返回視頻后綴mp4,如果是webm,就返回后綴webm。結果,在谷歌瀏覽器中播放不了,為什么我指定源為webm格式的視頻時,谷歌瀏覽器毫無錯誤的播放了,但是,如果是使用if判斷,發現選擇的是mp4,而不是webm,咋辦?

先來看看這兩段代碼,差別只是順序上的。

/*************************************獲取視頻格式***************************/ function getFormatExtension(){ if( video.canPlayType("video/webm") !=""){ //針對谷歌瀏覽器 return ".webm"; }else if( video.canPlayType("video/mp4") !=""  ){ //針對safari瀏覽器 return ".mp4"; } }

 

/*************************************獲取視頻格式***************************/

function getFormatExtension(){
    if( video.canPlayType("video/mp4") !=""){                                                    //針對谷歌瀏覽器
        return ".mp4";
    }else if( video.canPlayType("video/webm") !="" ){                                           //針對safari瀏覽器
        return ".webm";
    }
}
結果:在谷歌瀏覽器中不能正常播放。

下面我們來看一張各個瀏覽器對video元素支持的三種視頻格式的情況表:

我們可以看到,

1、chrome既支持mp4格式也支持webm格式。但是火狐和谷歌瀏覽器都會優先選擇mp4格式(實踐證明的)。

2.此時當這里的mp4格式的視頻播放不了時,就出現了我遇到的情況,例如:在獲取中會顯示視頻被破壞。所以還是建議把瀏覽器選擇webm格式的代碼寫在前面,mp4的寫在后面,為了讓它先選擇webm格式的視頻,或者用程序中的判斷也可以。

現在來說說為什么谷歌播放不了mp4格式的視頻的原因??

這是谷歌搜索后學到的內容,又有進步了,哈哈。

原因:

Chrome瀏覽器支持HTML5,它只是支持原生播放部分的MP4格式。MP4視頻格式,在我寫這篇筆記時,我也以為mp4格式就是后綴為.mp4,其實不是,MP4本身不是一種簡單的視頻格式,它是一個包裝視頻和音頻格式的殼,里面的視頻音頻的編碼格式使用什么編碼方式是可變的。MP4視頻有兩種編碼方式,Divx和H264,but,Chrome支持H264。於是我上面的例子中,瀏覽器看到有MP4后綴的文件,使用原生HTML5視頻播放,后來卻發現視頻格式無法解碼,於是,Chrome無法播放視頻。FF估計也是類似的原因。

 

 

有時間可以看看這個   http://my.oschina.net/maomi/blog/144086


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM