web-dev-qa-db-ja.com

RTSPサーバーとしてVLCを使用する

VLCのサーバー機能の使い方を理解しようとしています。より具体的には、RTPストリーミングの場合にSDPファイルをエクスポートする方法。 第4章 のRTPストリーミングの例サーバーとクライアントが与えられます:

vlc -vvv input_stream --sout '#rtp{dst=192.168.0.12,port=1234,sdp=rtsp://server.example.org:8080/test.sdp}'
vlc rtsp://server.example.org:8080/test.sdp

それを実際に機能させる方法は私にはあまり明確ではありません。 2つのcmdインスタンスを使用して、サーバーとクライアントに対して次の2つのコマンドを試しました。

vlc -I rc screen:// --sout=#rtp{dst=127.0.0.1,port=4444,sdp=rtsp://localhost:8080/test.sdp} 
vlc -I rc rtsp://localhost:8080/test.sdp

2番目のコマンドを呼び出すと、最初のコマンドがクラッシュします。 2番目のコマンドは、「localhost:8080に接続できませんでした」というエラーメッセージを表示します。

4
StackedCrooked

あなたの問題は、あなたが見ている例がファイルのストリーミングであり、あなたの例のコマンドがscreen://入力を使用している可能性が高いということです。 screen://デバイスを機能させるには、最初にビデオをエンコードする必要があります。したがって、次のようなものを試してください。

vlc -I rc screen:// --sout=#transcode{vcodec=h264,vb=800,scale=0.25,fps=10}:rtp{dst=127.0.0.1,port=4444,sdp=rtsp://localhost:8080/test.sdp}
vlc -I rc rtsp://localhost:8080/test.sdp
5
heavyd

コマンドを二重引用符で囲む必要があります

--sout="#transcode{vcodec=h264,vb=800,scale=0.25,fps=10}:rtp{dst=127.0.0.1,port=444‌​4,sdp=rtsp://localhost:8080/test.sdp}" 
3
gianrisa