透過 http 使用 ffmpeg 廣播螢幕

透過 http 使用 ffmpeg 廣播螢幕

在這些隔離的日子裡,我打算將我的桌面分享給朋友們,向他們解釋什麼是 git 實踐。問題是:

  • 我使用 FreeBSD。
  • 我們落後於 NAT。但我已經為這些目的配置了帶有 VPN (Wireguard) 的 VPS。
  • 我想使用免費且簡單(「無趣」)的軟體。

我決定使用的是共享我的桌面ffmpeg -f x11grab並將輸出流到任何連接埠。由於我們可以在一個虛擬網路中,朋友們可以使用任何 VLC、MPV 或網頁瀏覽器毫無問題地觀看此串流。當我了解到 ffmpeg 無法直接輸出到 http 時,問題就出現了。我嘗試了很多解決方案,例如透過 rtmp 發送到 YouTube Live Streaming(開銷,而不是免費服務)以及使用 HLS 協定和 HTTP 伺服器進行分割和共享,並在 HLS 處停止。

我的 ffmpeg 啟動:

ffmpeg -f x11grab -video_size 1920x1080 -i :0 -c:v h264 -f hls -hls_time 1 -g 15 stream.m3u8

以及我正在測試的 mpv:

mpv --no-cache --no-resume-playback stream.m3u8

我發現大約有 10-15 秒的延遲。即使我將視頻比特率設置為半兆字節,也會有類似的延遲(當然質量也很差),因此這可能意味著問題不在於頻寬[而且我什至沒有開始在比我的本地更遠的地方廣播它個人電腦! ]。

我找到了一個所以答案使用者表示 HLS 是一種錯誤的低延遲協定。我閱讀了很多部落格、維基百科文章和 ffmpeg 維基百科(串流媒體指南)但找不到解決方案。我怎麼能減少延遲,或者我可以使用什麼軟體(最好是 ffmpeg)讓我的朋友看到​​我的桌面,延遲等於 Discord 和 Skype 的幾秒鐘?值得一提的是:我不需要好的質量,滴也可以,因為我要共用一個終端視窗。

相關內容