使用具備RTMP/HLS 模組的 Nginx Docker container,快速打造現代化的串流伺服器。

幾種串流通訊協定摘要:

  • RTP:點對點的串流媒體傳輸協定,主要使用 UDP 協定,不支援瀏覽器播放
  • RTSP:基於 RTP 的串流媒體控制協定,例如快轉、暫停
  • RTMP:過去 Flash 時代的串流傳送主流,使用 TCP 協定,瀏覽器需支援 Flash,預設連接埠1935。
  • HLS:HTTP Live Streaming,由 Apple 主導,使用 HTTP 協定,易於通過防火牆,但高延遲,可達20秒以上。使用副檔名為 .m3u8 的索引檔與 .ts 容器。行動平台上四大瀏覽器皆支援播放,桌上平台只有 Safari 與 Edge 原生支援,Chrome 與 Firefox 需透過 extensions 支援。
  • HTTP-FLV:使用 HTTP stream IO 播放 FLV 格式媒體檔案
  • WebRTC:還不會用,正在學...

使用 jasonrivers/nginx-rtmp module docker image

簡易執行:

docker run -p 1935: 1935 -p 8888:8080 jasonrivers/nginx-rtmp

多個串流:

推播至其他 RTMP 伺服器:

docker run      \
    -p 1935:1935        \
    -p 8888:8080        \
    -e RTMP_PUSH_URLS=rtmp://live.youtube.com/myname/streamkey,rtmp://live.twitch.tv/app/streamkey
    jasonrivers/nginx-rtmp

OBS 串流設定

Streaming Service: Custom
Server: rtmp://<your server ip>/live
Play Path/Stream Key: mystream

觀看串流:

使用 VLC:

  • rtmp://servername/live/mystream
  • http://servername/hls/mystream.m3u8