1. 程式人生 > >使用videojs播放rtmp視訊

使用videojs播放rtmp視訊

demo程式碼在此,直接點選下載,親測可用。demo下載


!!注意以下幾點:

  1. 一定要把程式碼放到伺服器上執行,然後訪問index.html,不可本地開啟使用。
  2. demo使用的video.js版本是5.5.3,其他版本我還沒進行測試,大家可以自己去試試。videojs官網
  3. 親測在谷歌,ie9以上瀏覽器都可以正常播放,ie8還有點問題。
  4. 截止我寫部落格時我用的rtmp視訊源是可用的,如果大家發現無法播放,可以試試其他的視訊源,這裡提供幾個,僅供參考:
    香港衛視,rtmp://live.hkstv.hk.lxdns.com/live/hks
    香港財經,rtmp://202.69.69.180:443/webcast/bshdlive-pc
    韓國GoodTV,rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp
    韓國朝鮮日報,rtmp://live.chosun.gscdn.com/live/tvchosun1.stream
    美國1,rtmp://ns8.indexforce.com/home/mystream
    美國2,rtmp://media3.scctv.net/live/scctv_800
    美國中文電視,rtmp://media3.sinovision.net:1935/live/livestream
    湖南衛視,rtmp://58.200.131.2:1935/livetv/hunantv

主要的程式碼如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Access-Control-Allow-Origin" content="*">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>測試rtmp直播源</title>
<script src="js/video.js"></script>
<link href="css/video-js.css" rel="stylesheet">
<!-- If you'd like to support IE8 -->
<script src="js/videojs-ie8.min.js"></script>
</head>
<body>
<div class="openFlashTips" style="width:300px;position:absolute;top:20px;left:225px;z-Index:9999;color:white">視訊無法正常播放,請點選下方啟用flash</div>
<video id="my-video" style="color:black;width:750px;height:350px" class="video-js" autoplay controls preload="auto" width="750" height="350" data-setup="{}">
    <source src='rtmp://58.200.131.2:1935/livetv/hunantv' type='rtmp/flv'/>
</video>
<embed width="300" height="70" class="openFlash" style="position:absolute;top:130px;left:225px;z-Index:9999;" type="application/x-shockwave-flash">
<script type="text/javascript" language="JavaScript">
    function flashChecker() {
        var hasFlash = 0;         //是否安裝了flash
        var flashVersion = 0; //flash版本
        var isIE = /*@
[email protected]
*/0; //是否IE瀏覽器 if (isIE) { var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); if (swf) { hasFlash = 1; VSwf = swf.GetVariable("$version"); flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]); } } else { if (navigator.plugins && navigator.plugins.length > 0) { var swf = navigator.plugins["Shockwave Flash"]; if (swf) { hasFlash = 1; var words = swf.description.split(" "); for (var i = 0; i < words.length; ++i) { if (isNaN(parseInt(words[i]))) continue; flashVersion = parseInt(words[i]); } } } } return {f: hasFlash, v: flashVersion}; } var fls = flashChecker(); var s = ""; if (fls.f) { document.getElementsByClassName("openFlash")[0].style.display = "none"; document.getElementsByClassName("openFlashTips")[0].style.display = "none"; // document.write("您安裝了flash,當前flash版本為: " + fls.v + ".x"); } else { document.getElementsByClassName("openFlash")[0].style.display = "block"; document.getElementsByClassName("openFlashTips")[0].style.display = "block"; // document.write("您沒有安裝flash"); } </script> </body> </html>

效果圖如下所示:
在這裡插入圖片描述