首頁 web前端 H5教程 淺談基於HTML5的線上影片播放方案_html5教學技巧

淺談基於HTML5的線上影片播放方案_html5教學技巧

May 16, 2016 pm 03:45 PM
html5 影片

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

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

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

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

MPEG-4規格規定了檔案字尾名為.mp4,目前包含三種影像編碼和壓縮演算法:XvidDivXAVC(H.264),其中Xvid和DivX也可以統稱為MPEG-4 Part 2或MPEG-4 Visual,而更知名的H.264和AVC是相同的概念。音訊方面則是AAC。以下關於相容的內容,來自維基百科和格式工廠以及筆者的測試:

Android瀏覽器:支援DivX和AVC,Xvid應該不支援
iPhone和iPad(iOS):支援DivX和AVC,Xvid不支援
Chrome:支援AVC,不支援DivX和Xvid。谷歌曾在2011年初宣布由於許可問題,將移除Chrome瀏覽器對AVC(H.264)的支援。但是直到目前的版本,AVC仍在被支援。另外,實際測試下來,如果是DivX和AAC封裝在mp4中的話,chrome可以播放,但只有聲音(AAC)。
Firefox和Opera:還是由於許可的問題,Firefox和Opera逐漸動搖了對AVC的支持,筆者在最新的Firefox中測試AVC仍然可以播放(維基百科的解釋是可能與系統本身俱有解碼器有關) ;至於DivX和Xvid,筆者在Firefox下的測試結果是不支援。從維基百科的兼容列表來看,Opera對AVC支援的不好。
IE:筆者的IE11能夠支援AVC,不支援DivX和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的

*IE9 「只有當使用者安裝了VP8的編解碼器」才能支援VP8。

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

XML/HTML Code複製內容到剪貼簿
  1. 影片 海報=海報=海報=海報
  2. ="電影.jpg""電影.jpg" > 控制>     來源 src "
  3.  
  4. 類型='影片/webm; codecs="vp8.0, vorbis"'>>>>>>>>>>>>>>>>>>  
  5.   來源 src=src=。 " 類型='影片/ogg; codecs="theora, vorbis"'
  6.      來源 src=
  7. src
  8. =“電影。 " 類型='影片/mp4; codecs="avc1.4D401E, mp4a.40.2"'
  9. >
  

  

p

>
這是後備內容

這是後備內容



>p

>
  
影片>   選擇器會根據自己的喜好來具體加載那種格式的串流文件,當然服務端必須對同一個視頻提供多種格式的支持,具體可以通過: 提供一個WebM的視訊版本(VP8 Vorbis)提供一個MP4的視訊版本(H.264 AAC(低複雜度))提供Ogg版本(Theora Vorbis)服務端推薦使用nginx ,請注意MIME類型的設定是否正確 舊版的IE和flash在html5流行之前,通用的視訊播放解決方案是flash和flv(flash從9開始支援h.264的mp4)。但隨著ios設備的流行,flash已經不是萬能藥了,越來越多的影片網站還是提供多元的解決方案,而且偏向於html5:相反,透過偵測agent是否支援html5來決定使用videoflash。在面對IE8在以下瀏覽器時,flash幾乎是唯一的選擇(silverlight的接受度普遍不高)。 當然針對flash和flv的方案,也有多種實作方法,作者能想到的有以下幾種: 服務端根據agent的類型,輸出不同的html,如果支援html5就輸出video mp4(avc)和webm(或ogg),否則輸出flash相關的標籤或腳本使用html5shiv和html5-video是IE也能夠支援影片標籤,並且使用Flash播放器來取代原生的影片播放。 將物件內嵌在影片中: XML/HTML 程式碼將內容複製到剪貼簿
  1. 影片 id=id=id=「電影 寬度="320" 高度="240"
  2.  預載控制
  3. >     來源 src " 類型="視訊/webm; 編解碼器=vp8,vorbis"
  4. 🎜 >/>
  5.      來源 src " 類型="視訊/ogg; 編解碼器=theora,vorbis" 🎜 >/>  
  6.   來源 src=src= " />
  7.   
  8.   物件 寬度=寬度== 🎜> 高度="240"  
  9. 「應用程式/x-shockwave-flash」       資料="flowplayer-3.2.1.swf"
  10. "flowplayer-3.2.1.swf""flowplayer-3.2.1.swf" >     參數 名稱=“電影”  ="flowplayer-3.2.1.swf"
  11.  
  12. >       參數 名稱="允許全屏"  ="true" 
  13. /> /> /> />>/>/>     參數 名稱 名稱 名稱 值="config={'clip': {'url': 'http://wearehugh.com/dih5/ pr6 .mp4', 'autoPlay':false, 'autoBuffering':true}}" />  
  14.     <p>Muat turun video sebagai <a href="pr6.mp4">MP4a><a href="pr6.webm">WebMa>, atau <a  href="pr6.ogv">Ogga >.p>  
  15.   objek>  
  16. video>  
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles