2017-04-07 2551 views
4

我正在使用OBS將直播流推送到本地rtmp服務器(node-rtsp-rtmp-server), ,它適用於VLC媒體播放器。 我只想把它放入網頁,我發現videojs。 它沒有工作,並返回不支持指定的「類型」 - 屬性「rtmp/mp4」。 它似乎我的rtmp服務器沒有從這個網頁的任何請求。 那麼我錯過了什麼? 這是我的代碼:如何使用videojs播放rtmp直播流?

<head> 
    <meta charset="utf-8"> 
    <link href="./video-js-6.0.0/video-js.css" rel="stylesheet"> 
    <script src="./video-js-6.0.0/video.js"></script> 
    <script src="./video-js-6.0.0/videojs-flash.min.js"></script> 
    <script> 
     videojs.options.flash.swf = "./video-js-6.0.0/video-js.swf" 
    </script> 
</head> 
<body> 
    <video id='vid' class='video-js' controls height=300 width=600> 
     <source src="rtmp://127.0.0.1:1935/live/pokemon" type="rtmp/mp4"/> 
    </video> 
    <script> 
     var player = videojs('vid'); 
    </script> 
</body> 
+0

我被困在同樣的問題。顯然videojs在6.0版本中沒有flash播放器,這意味着它不能播放RTMP(因爲沒有套接字就沒有辦法打開RTMP,並且沒有沒有插件的套接字) – pqnet

回答

1

瀏覽器不支持RTMP。在瀏覽器中連接RTMP流的唯一方法是使用Flash。

考慮使用媒體源擴展支持的更兼容的分發協議,例如DASH。

1

要發佈從RTMP服務器到Web頁面流,你有兩個選擇:

  1. 在Flash播放器(頻閃燈,JwPlayer,的Flowplayer)嵌入RTMP流
  2. 在HTML5提供流格式(HLS或MPEG DASH),使用支持Wowza Streaming Engine等流媒體服務器;這可能還需要轉碼,如果你的流尚未與H264和AAC
2

編碼這是對我的作品

<html> 
<head> 
<title> Stream Player </title> 
    <link href="video-js.css" rel="stylesheet" type="text/css"> 
    <script src="video.js"></script> 
    <script> 
    videojs.options.flash.swf = "video-js.swf"; 
    </script> 
</head> 
<body> 
<center> 
    <video id="livestream" class="video-js vjs-default-skin vjs-big-play- 
centered" 
    controls autoplay preload="auto" width="600" height="300" 
    data-setup='{"techorder" : ["flash"] }'> 
     <source src="rtmp://10.0.0.35:1935/live/test" type="rtmp/mp4"> 
    </video> 
</center> 
</body> 
</html> 

看起來就像你可能在你的類型「/」錯字。數據設置techorder參數似乎是videojs使用閃存所必需的。

如果這不起作用,那麼確保你的JavaScript文件都很好。

我使用nginx作爲我的服務器。

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

https://github.com/arut/nginx-rtmp-module

-1

如果使用VLC媒體播放器工作時,就意味着你的RTMP服務器正常工作。 你必須檢查瀏覽器是否支持Flash。由於我們意識到最新版本的Chrome和Firefox會在默認情況下自動阻止Flash。我們通過簡單地在網站上允許Flash來解決問題。 video.js和videojs-flash沒有錯。 Plz參考附件截圖。 enter image description here

+0

雖然這個答案沒有實際上幫助網站所有者(因爲用戶不希望知道他們應該授予您網站的特殊權限 - 並且要求這樣的特別許可是偏激的),這是一個有點幫助的答案,因爲這裏面臨的問題是現代瀏覽器根本不信任Flash內容(有充分的理由)。 – Ghedipunk