[英]How to stream video from my WebRTC to Facebook RTMP server directly?
[英]How to use WebRTC to stream video to RTMP?
我正在嘗試構建一項服務,將您的屏幕從瀏覽器流式傳輸到客戶端(類似於 twitch)。
我已經完成的是我用 rtmp 構建了一個工作的 nginx 服務器,我使用 OBS 對其進行了測試。 這很好用。
我的問題是如何使用 WebRTC 將屏幕從瀏覽器(而不是 OBS 或其他廣播公司)流式傳輸到帶有 RTMP 的 nginx 服務器?
對於 RTSP<->WebRTC / RTMP<->WebRTC 轉換,您需要運行某種 WebRTC 網關/媒體服務器軟件,該軟件適用於所有這些格式/協議,並且可以在所有這些格式/協議之間進行傳輸。 試試 Wowza / Unreal Media Server / Flashphoner。 https://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems
因此,在您的情況下,您想通過 WebRTC 將屏幕從瀏覽器發布到媒體服務器(H264 編解碼器是必須的),然后使用 nginx-rtmp 模塊將 RTMP 流從媒體服務器拉到 nginx 服務器。
請注意,反之亦然:您可以通過 RTMP 將流推送到媒體服務器(例如 OBS 屏幕截圖),然后通過 WebRTC 將此流從媒體服務器發送到 Web 瀏覽器。
這些轉換的主要問題是編解碼器兼容性:視頻必須使用 H264,但如果您需要音頻,則必須將 Opus 轉碼為 AAC。
SRS(Simple Realtime Server)也能夠將 WebRTC 轉換為 RTMP,反之亦然。
WebRTC to RTMP
用於 H5 發布者進行直播。 因為RTMP現在被禁用(在2021.12),所以H5發布流的唯一方法是WebRTC。 我們還需要將 WebRTC 轉換為 RTMP,這樣我們就可以復用其他平台的流。
並且 SRS 還支持RTMP to WebRTC
,這是低延遲的實時流媒體。 一般RTMP在3~5s延遲左右,而RTMP to WebRTC
在0.8~1s
左右延遲。 請注意,H5 不支持 RTMP,但HTTP-FLV
運行良好。
除此之外,SRS 還支持 HTTP-FLV,通過flv.js使 H5 能夠播放 RTMP。 延遲也低於 HLS 或 LLHLS。
注意:其他直播功能也很重要,因為跑題了,所以請查看 SRS 的 wiki,如 DVR-MP4、DASH、Cluster、HTTP-API 等。
也可以用Nginx從SRS拉RTMP流,或者讓SRS把RTMP轉發給Nginx,通過SRS將WebRTC隱蔽到RTMP流之后。
請不要使用 WebRTC 進行直播,除非您知道自己在做什么,否則請閱讀為什么以及為什么不使用 WebRTC 進行直播。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.