srs搭建直播伺服器
Ⅰ 用SRS快速搭建WebRTC推流和播放
WebRTC目前已經比較成熟了,播放也比較穩定,協議也已經成為了RFC,相應的開源項目也比較多。當然我覺得WebRTC還缺一個高性能簡單易用的伺服器,之前也分析過現有的伺服器,有各種問題,SRS很有機會解決這些問題。
目前SRS對WebRTC的支持進度如下:
相關Wiki:
在線演示,RTMP推流,HTTP-FLV和WebRTC播放:
在線演示,WebRTC推流,WebRTC播放:
自己用SRS搭建WebRTC伺服器,也非常容易,下面是操作步驟。
注意:必須要將本機的IP傳給Docker,否則會推流和播放失敗。
可以直接傳本機IP,例如: 192.168.1.3 。如果覺得直接傳IP比較麻煩,可以用腳本獲取IP。
macOS下執行命令,直接設置IP:
macOS下執行命令,用腳本獲取IP:
CentOS下執行命令,用腳本獲取IP:
啟動後,可以訪問 http://localhost:8080/ ,確認是否啟動成功。
Docker一定要設置對這個IP,否則會出現推流和播放失敗。
演示,WebRTC推流和播放,鏈接:
演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到伺服器:
可播放的流地址:
Ⅱ 用SRS搭建WebRTC流媒體伺服器實戰
WebRTC經過這么多年的發展,目前已經比較成熟的協議之一,播放也比較穩定,協議也已經成為了RFC,相應的開源項目也越來越多,但是基於WebRTC協議的部署簡單,性能強悍,功能強大流媒體伺服器的項目還比較稀少。之前了解到的伺服器比如Mediasoup,Janus,Medooze ,要麼就是設計復雜,接入成本要,要麼就是性能較差,還就是多種語言結合,學習成本較高。 而SRS聚焦視頻相關,功能專一,語言使用了高性能的c++,並且支持Rtmp轉Webrtc等其他強大的功能的媒體伺服器。
使用這個命令開啟RTC支持
2.SRS常用命令
3.配置nginx代理
若不需要瀏覽器推流,可以不用設置nginx代理,使用localhost訪問
注意:your 代表需要配置你自己的域名信息,由於使用瀏覽器推流必須使用https協議,所以我這邊配置了證書
4.訪問配置的域名
訪問nginx配置的網址 https://webrtc.yourhost.com/
出現如下內容,則服務端架設成功
雖然整片文章看起來不復雜,流程很簡單。但是官網的文檔中的知識點比較分散,所以大家要想快速的搭建的話就參考我這篇文章
Ⅲ 海康攝像頭開發SRS+ffmpeg+http-flv+flv.js(二)
接上篇文章。雖然部署好了網路,通過VLC能播放視屏,但是離簡單好用的道路還很遠,在這期間查了很多資料,對整個系統有了不掃了解。首先引用一下,關於實現web播放的幾種方法和優缺點(以下來自網路):
開始的我也使用了網路的介紹,用ffmpeg轉成rmtp流,但最後發現如果要播放rmtp流是需要flash支持的,現在的flash的支持度很差,顯然不行,網上現在能找到的FFmpeg + nginx-rtmp-mole方案並不是一個好方案。所以還是需要使用方案三。
以下的這個表寫的比較清楚,能支持html5播放器的就httpflv和hls,二選一選擇httpflv。
在本人實際操作中使用的流媒體伺服器並不是nginx-http-flv-mole ,而是用了SRS(simple rmtp server)+FFMPEG方案,感覺更簡單。
搭建過程先省略。(詳細搭建SRS+ffmpeg單獨文檔)
遇到的問題:
搭建完成,推流後VLC能播放,但是用flv.js的播放器
http://bilibili.github.io/flv.js/demo/
總是無法播放,後來發現下面還是有提示錯誤的。
這里主要是要注意轉換語句:
原來是這樣,參數-vcodec 和 -acodec 都用的,而實際攝像頭處理的視頻格式是h.264+pcma_u
後來改成這樣,將-acodec 改成aac
就能看到視頻了
視頻里是家中窗外風景。
實際使用中發現,如果視頻部分h264不轉碼,用的模式的話cpu性能不高,可以支持很多路數。
視頻和vlc播放的時候延時10s左右,感覺延時有點大。
接下來就是要把flv.js移植到工程中。然後現在的推流什麼的都是命令行執行的,這些肯定不行.
Ⅳ srs+obs搭建直播,obs開始推流提示無法訪問指定的頻道
obs的推流地址和密鑰沒設置好