html5視訊播放解決方案
html5沒學習之前總覺的很神祕。近期通過學習和研究html5有點成果,特總結分享給大家。
眾所周知應用開發分兩種:一是原生的native app 二是web app,也就是通過瀏覽器訪問的應用。
html5在移動互聯時代,有他獨到的用武之地,雖然他有很多優勢但不可能完全徹底取代原生APP,原生APP開發成本雖高,但是其良好的使用者體驗以及API、已有的開發生態鏈等,會保持其長期的旺盛兩種APP會互補共存。學習html5的成本不算高,H5本質是html但凡做過web開發的程式設計師,稍加學習就能掌握。
這裡主要研究的是通過應用html5來解決視訊播放的問題。Adobe公司因為戰略錯誤,忽視了移動互聯這塊,移動終端對flash支援並不好,特別是蘋果終端都不支援flash(蘋果電腦和筆記本是支援flash)。pc端多數應用的flash,
流媒體又能有很好的互動體驗。為了移動端也能播放顯示,我們深入學習研究了html5,利用html5不用外掛直接播放視訊,還能跨平臺來實現播放。
一、html5技術優勢
1 關於視訊不用外掛播放,點選就能看
2 跨平臺、好升級、好維護,開發成本相對原生APP低很多
3 對移動的良好支援,支援手勢,本地儲存和視訊續播等,通過H5就可以把自己的網站移動化。
4 更為簡潔的程式碼,更好的互動
5 支援遊戲開發
二、html5播放視訊
pc端還是用flash播放,但移動端通過html5方式來做。
而html5的video標籤只支援mp4、webm、ogg三種格式.目前所有主流瀏覽器最新版本都支援html5(除了Opera)
H.264已經佔領視訊市場的80%。如果移動應用視訊,建議編譯成264格式,有好的高壓縮比、高畫質。
H.264則是由兩個組織聯合組建的聯合視訊組(JVT)共同制定的新數字視訊編碼標準,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高階視訊編碼(Advanced Video Coding,AVC)的第10 部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。
三、html5程式碼DEMO
<!doctype html> <html> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <link href="CSS/play.css?var=1121" rel="stylesheet" type="text/css"> <script type="text/javascript"> function browserRedirect() { var sUserAgent= navigator.userAgent.toLowerCase(); var bIsIpad= sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs= sUserAgent.match(/iphone os/i) == "iphone os"; var bIsMidp= sUserAgent.match(/midp/i) == "midp"; var bIsUc7= sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; var bIsUc= sUserAgent.match(/ucweb/i) == "ucweb"; var bIsAndroid= sUserAgent.match(/android/i) == "android"; var bIsCE= sUserAgent.match(/windows ce/i) == "windows ce"; var bIsWM= sUserAgent.match(/windows mobile/i) == "windows mobile"; if(bIsAndroid){ document.getElementById("a").style.display="block"; document.getElementById("b").style.display="none"; document.getElementById("c").style.display="none"; document.getElementById("d").style.display="none"; } else if (bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsCE || bIsWM) { document.getElementById("b").style.display="block"; document.getElementById("d").style.display="none"; document.getElementById("a").style.display="none"; document.getElementById("c").style.display="none"; } else if(bIsIpad) { document.getElementById("c").style.display="block"; document.getElementById("a").style.display="none"; document.getElementById("b").style.display="none"; document.getElementById("d").style.display="none"; } else { document.getElementById("d").style.display="block"; document.getElementById("a").style.display="none"; document.getElementById("b").style.display="none"; document.getElementById("c").style.display="none"; } } window.onload=function(){browserRedirect();} $(document).ready( function(){ var ps=new jsPlayer("700","500","myVideo"); } ); </script> <head> <title>測試移動終端</title> </head> <body> <div id="a"><p>這是安卓手機</p></div> <div id="b"><p>這是蘋果手機</p></div> <div id="c"><p>這是ipad</p></div> <div id="d"><p>這是電腦</p></div> <div style="width:700px;margin:auto;"> <!--播放器程式碼開始--> <div class="playContent"> <div class="playScreen"> <video id="myVideo"> <source src="Movie/th264.mp4" type="video/mp4"> </video> </div> <div class="proLines"> <div id="origin" class="arial">00:00:00</div> <div class="line"> <div class="isPlayLine"> <div class="currentCircle"> </div> </div> </div> <div id="duration" class="arial"></div> </div> <script src="js/jquery.min.js"></script> <script src="js/dtooltip-min.js"></script> <div class="playBars"> <div class="prevBar"><img src="Images/prev.jpg" border="0" id="prev"></div> <div class="startBar"><img src="Images/stop.jpg" border="0" id="imgStatus"></div> <div class="nextBar"><img src="Images/next.jpg" border="0" id="next"></div> <div class="voiceContent"> <div class="voice"> <img src="Images/voice.jpg" id="voiceImg" border="0"> </div> <div class="voiceline"> <div class="voicekuai"></div> </div> </div> </div> </div> <!--播放器程式碼結束--> </div> </body> </html>
四、html5發展情況
Html5瀏覽器支援情況
絕大多數瀏覽器支援html5(除了opera mini)
資料來源:http://caniuse.com/#cats=HTML5
mp4視訊支援情況
主流都支援mp4(除了opera)
資料來源:http://caniuse.com/#feat=video
參考資料:
H.264贏下視訊格式大戰已十拿八穩,五分之四的視訊採用該格式
http://www.36kr.com/p/70116.html
HTML5視訊方案:支援iPad Safari、Firefox、Chrome、IE9876
http://www.cnblogs.com/sink_cup/archive/2011/04/21/html5_video_ipad_firefox_chrome_ie9876_flash.html
各大瀏覽器 Safari、Chrome、Firefox ,IE,Opera對HTML5的video的支援
http://www.deepleo.com/archives/636
最新版本的 Safari、Chrome、Firefox 以及 Opera 支援某些 HTML5 特性。Internet Explorer 9 將支援某些 HTML5 特性。
手機瀏覽器HTML5支援情況調查
http://www.williamlong.info/archives/3075.html
如何檢查使用者瀏覽器是否支援HTML5 video :
http://www.deepleo.com/archives/636
TUP系列活動第八期:HTML5技術應用分享
http://tech.sina.com.cn/it/2011-03-22/19465317662.shtml
分析優酷HTML5地址
http://blog.xiaohai.co/archives/youku-html5/
http://m.youku.com/
http://labs.3g.youku.com/ipad/ 優酷開放HTML5
優酷移動端網站的頁面設計更適合手機瀏覽器觀看,簡潔大氣、節目資訊全面。由於Html5技術的大力應用,節省本地資源之餘,也不用載入Flash外掛,點選視訊就能迅速觀看。
且完美的實現了即時更新,使用者再也不需要管理應用程式,重新下載,有任何功能應用的更新,只需開啟瀏覽器,登入後便能輕鬆實現。
同時,利用全面支援Html5的優酷移動端網站,也具有自動續播功能,即使用者可以訪問以遠端方式儲存在“雲”中的各種內容,不受位置和裝置的限制,隨時隨地享受自己鍾愛的視訊節目。
轉自http://www.cnblogs.com/wellsoho/p/3498852.html