![使用 ffmpeg 串流 RTSP?](https://rvso.com/image/1586924/%E4%BD%BF%E7%94%A8%20ffmpeg%20%E4%B8%B2%E6%B5%81%20RTSP%EF%BC%9F.png)
因此,我已經能夠成功地將 RTP 視訊串流從我的伺服器發送到 LAN 上另一個系統上的用戶端,並使用 ffplay 進行播放。我現在想使用 RTSP 在同一網絡上發送視頻,以便客戶端可以接收視頻並可以有其他選項,例如暫停視頻等。任務?
更新:
我已經嘗試過這些命令:
ffmpeg -re -i input -f rtsp -rtsp_transport tcp rtsp://localhost:8888/live.sdp
ffplay -rtsp_flags listen rtsp://localhost:8888/live.sdp
它確實開始實時流式傳輸視頻,但我實際上沒有看到任何控制媒體流的選項,如播放、錄製等!
注意:我目前用於 RTSP 的 .sdp 檔案與用於 RTP 串流媒體的檔案相同。
答案1
FWIW,我能夠使用以下命令設定本機 RTSP 伺服器用於測試目的簡單 rtsp 伺服器和 ffmpeg 依照以下步驟操作:
rtsp-simple-server.yml
為使用這一行 調用的 RTSP 伺服器建立一個設定檔:protocols: [tcp]
- 將 RTSP 伺服器作為 Docker 容器啟動:
$ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
- 使用 ffmpeg 將視訊檔案(永遠循環)串流到伺服器:
$ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream
運行後,您可以使用 ffplay 來查看串流:
$ ffplay -rtsp_transport tcp rtsp://localhost:8554/live.stream
注意簡單 rtsp 伺服器也可以處理 UDP 流 (iso TCP),但這將伺服器作為 Docker 容器運行很棘手。