RTPリバースプロキシ

RTPリバースプロキシ

私は実際にコードを書く前にビデオストリーミングサーバーのプロトタイプを作ってみました。そのため、VLCを使用して次のコマンドを使用してサーバーからストリーミングします。

cvlc video.mpg --loop --sout '#transcode{vb=0,vcodec=mpgv,fps=20,ab=0,acodec=mpga,channels=2,venc=ffmpeg}:rtp{mux=ts,ttl=10,dst=127.0.0.1,port=9554}'

ストリーミングサービスが開始されました。ローカルホストポート9554から。いくつかの調査の最後に、VLCストリームをパブリックIPにバインドできませんでした。これは他のページで共有する価値があるもう1つの問題です。
問題は、ストリームを外部の世界で見ることができるようにNginXリバースプロキシを使用していることです。HTTPプロトコルVLCからストリーミングRTTP

cvlc video.mpg --loop --sout '#transcode{vb=0,vcodec=mpgv,fps=20,ab=0,acodec=mpga,channels=2,venc=ffmpeg}:http{mux=ts,ttl=10,dst=0.0.0.0:9554/live}'

まあ、私の携帯電話からのビデオストリーミングはうまくいきますが、私はただ使用しません。RTTP規約。
問題は、リバースプロキシの使用方法がわからない場合に発生します。UDPストリーム。もちろん、NginXは最新バージョンではHTTPとTCPのみをプロキシできるため、機能しません。
次に、リバースプロキシを使用する方法を学びます。UDPストリーム
VLCをlocalhostの代わりにパブリックアドレスにバインドする方法を知っている場合は、他の関連する回答も歓迎します。

ベストアンサー1

RTPはRTCP(RTP制御プロトコル)と共に使用されます。

RTPはメディアストリーム(オーディオやビデオなど)を配信しますが、RTCPはトランスポート統計とサービス品質(QoS)を監視するために使用され、複数のストリームの同期を容易にします。

通常、RTP は偶数 UDP ポートで送信され、RTCP メッセージは次に高い奇数ポートで送信されます。

そのため、RTCPを忘れたパブリックIPアドレスにRTPをバインドできなかったようです。

もう一度言いますが、必要なのはリバースプロキシではなくDNATだと思います。

私の提案は、インターネットを介してビデオとオーディオをストリーミングするには、RTPの代わりにHLSを使用し、RTPや他の同様のプロトコルよりも柔軟で、Nginxを使用してHLSを提供できることです。

http://nginx.org/en/docs/http/ngx_http_hls_module.html

おすすめ記事