国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML5實現的在線視頻播放

2020-03-24 16:11:24
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了基于HTML5的在線視頻播放方案,討論了編碼和瀏覽器支持等相關方面的問題,需要的朋友可以參考下

如今在這個特殊的時代下:flash將死未死,微軟和IE的歷史問題,html5標準未定,蘋果和谷歌的閉源和開源之爭,移動互聯網的大勢所趨,瀏覽器各自為戰…這些都導致web開發者在設計視頻解決方案的時候相當困惑。本文圍繞這個主題,來探討一下相關的技術,原理和工具。

編碼與格式的誤區
很多人將編碼和格式誤認為是同一個東西,往往以視頻文件的后綴來唯一確定視頻文件的支持程度。而事實上,用一句話來概括就是:視頻的文件后綴(假設沒有惡意修改后綴)實際上代表一種封裝格式,而視頻或者音頻的編碼算法與封裝格式本身無直接的關系:同樣的封裝格式(即同樣的后綴)可以封裝不同編碼算法的視頻和音頻。而視頻播放設備或軟件是否支持視頻的播放,不僅僅要看封裝格式,還要看編碼算法。認清這一點是理解和排查問題的基礎。

封裝格式規定了視頻的所有內容,包括圖像,聲音,字幕,系統控制等,其中以圖像和聲音最為關鍵。

從MPEG說起
MPEG是一個定義視頻規格的國際組織,他們曾經推出的MPEG-1和MPEG-2實際上分別就是大家熟知的VCD和DVD,不過這都是遠古的東西了。我們來看看跟本文主題有關的MPEG-4規范。

MPEG-4規范規定了文件后綴名為.mp4,目前包括三種圖像編碼和壓縮算法:Xvid/pX/AVC(H.264),其中Xvid和pX也可以統稱為MPEG-4 Part 2或者MPEG-4 Visual,而更為知名的H.264和AVC是相同的概念。音頻方面則是AAC。以下關于兼容的內容,來源于維基百科和格式工廠以及筆者的測試:

Android瀏覽器:支持pX和AVC,Xvid應該不支持
iPhone和iPad(iOS):支持pX和AVC,Xvid不支持
Chrome:支持AVC,不支持pX和Xvid。谷歌曾在2011年初宣布由于許可問題,將移除Chrome瀏覽器對AVC(H.264)的支持。但是直到目前的版本,AVC還在被支持。另外,實際測試下來,如果是pX和AAC封裝在mp4中的話,chrome可以播放,但是只有聲音(AAC)。
Firefox和Opera:還是由于許可的問題,Firefox和Opera逐漸動搖了對AVC的支持,筆者在最新的Firefox中測試AVC仍然可以播放(維基百科的解釋是可能與系統本身具有解碼器有關);至于pX和Xvid,筆者在Firefox下的測試結果是不支持。從維基百科的兼容列表看,Opera對AVC支持的不好。
IE:筆者的IE11能夠支持AVC,不支持pX和Xvid
WebM的倡導
由于AVC(H.264)的授權問題,以Chrome、Firefox、Opera為首的開源陣營開始動搖對AVC的支持,盡管目前這些瀏覽器仍然能夠支持AVC,但是它們也傾向于一個叫做WebM的開源多媒體項目,該項目包括一個叫VP8的新的開源視頻編解碼方案。目前VP8已經發展到了VP9。作為封裝格式的WebM具有.webm的后綴和video/webm的MIME類型。在音頻方面,可以使用Vorbis/Opus。從兼容性看,Chrome、Firefox、Opera對VP8的兼容性相當理想,但是Safari和IE幾乎無法支持。

開源的Ogg
Ogg幾乎與WebM相同,開源,被廣泛的在開源平臺支持。其視頻編碼方案稱為Theora(有VP3發展而來,由Xiph.org基金會開發,可被用于任何封裝格式),音頻為Vorbis。后綴通常為.ogv或.ogg,MIME類型為video/ogg。在兼容性上,Chrome、Firefox、Opera能夠支持(但是Opera在移動平臺上無法支持),但是Safari和IE幾乎無法支持。

Html5方案
以上的討論實際上的大前提是:視頻基于Html5的 video 方案?,F在我們來總結一下兼容性:

2016218114828002.png (853×211)

*IE9 “只有當用戶安裝了VP8的編解碼器時”才能支持VP8。

?Google Chrome 2011年宣布 放棄H.264, 但是“還沒兌現”。 可以看出現在主流的仍然是MP4(AVC),但是為了解決“開源陣營”對AVC的搖擺不定,可以選擇利用video的多源方案,在AVC的基礎上額外提供對webm或ogg的支持:

 video poster= movie.jpg controls  source src= movie.webm type= video/webm; codecs= vp8.0, vorbis  source src= movie.ogg type= video/ogg; codecs= theora, vorbis  source src= movie.mp4 type= video/mp4; codecs= avc1.4D401E, mp4a.40.2  p This is fallback content /p  /video 

瀏覽器會根據自己的偏好來選擇具體加載那種格式的流媒體文件,當然服務端必須對同一個視頻提供多種格式的支持,具體可以這么做:

提供一個WebM的視頻版本(VP8+Vorbis)
提供一個MP4的視頻版本(H.264+AAC(low complexity))
提供Ogg版本(Theora+Vorbis)
服務端推薦使用nginx,盡量注意MIME類型的配置正確

舊版本的IE和flash
在html5流行之前,通用的視頻播放解決方案是flash和flv(flash從9開始支持h.264的mp4)。但是隨著ios設備的流行,flash已經不是萬能藥了,越來越多的視頻網站提供多元的解決方案,而且偏向于html5:也就是說,通過檢測agent是否支持html5來決定使用video還是flash。在面對IE8以下的瀏覽器時,flash幾乎是唯一的選擇(silverlight的接受度普遍不高)。

當然針對flash和flv的方案,也有多種實現方法,筆者能夠想到的有如下兩種:

服務端根據agent的類型,輸出不同的html,如果支持html5就輸出video+mp4(avc)和webm(或者ogg),否則輸出flash相關的標簽或腳本
使用html5shiv和html5-video是IE也能夠支持video標簽,并且使用Flash播放器來代替原生的video播放。
將object內嵌在video中:

 video id= movie width= 320 height= 240 preload controls  source src= pr6.webm type= video/webm; codecs=vp8,vorbis /  source src= pr6.ogv type= video/ogg; codecs=theora,vorbis /  source src= pr6.mp4 /  object width= 320 height= 240 type= application/x-shockwave-flash  data= flowplayer-3.2.1.swf  param name= movie value= flowplayer-3.2.1.swf /  param name= allowfullscreen value= true /  param name= flashvars value= config={ clip : { url : http://wearehugh.com/dih5/pr6.mp4 , autoPlay :false, autoBuffering :true}} /  p Download video as a href= pr6.mp4 MP4 /a , a href= pr6.webm WebM /a , or a href= pr6.ogv Ogg /a . /p  /object  /video 

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

使用HTML5實現網頁音樂播放器

HTML5 video播放器全屏(fullScreen)實現的方法

H5手機端圖片上傳插件代碼

以上就是HTML5實現的在線視頻播放的詳細內容,其它編程語言

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲水县| 徐水县| 丹东市| 清流县| 黄石市| 普兰店市| 丹江口市| 临朐县| 略阳县| 察隅县| 七台河市| 吴堡县| 左贡县| 旬阳县| 安岳县| 西吉县| 凤冈县| 旌德县| 焦作市| 建平县| 卢龙县| 将乐县| 甘泉县| 鸡东县| 孟州市| 筠连县| 交口县| 铜山县| 达拉特旗| 中江县| 深州市| 沂水县| 乳山市| 樟树市| 黄山市| 时尚| 宜兰市| 尤溪县| 绥棱县| 烟台市| 万州区|