![ffmpeg で RTSP をストリーミングしますか?](https://rvso.com/image/1586924/ffmpeg%20%E3%81%A7%20RTSP%20%E3%82%92%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
これで、サーバーから LAN 上の別のシステムのクライアントに RTP ビデオ ストリームを正常に送信し、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
ちなみに、テスト目的でローカルRTSPサーバーをセットアップすることができました。シンプル rtsp サーバー以下の手順に従って ffmpeg を実行します。
rtsp-simple-server.yml
次の 1 行で 呼び出される 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 コンテナとして実行するのは難しいです。