RTPストリームを中継することは可能ですか。


2

NATの背後にカメラ(無人機、ラズベリーパイ)を持ち、パブリックIPを持つVPSサーバー、そしてビデオを表示したいNATの背後にクライアントがあるというユースケースがあります。

クライアントはQGroundcontrollと呼ばれるソフトウェアを実行しており、これはローカルUDPポート(通常5000)でRTPストリームを待ち受けます。

クライアントをVPN上で実行してパブリックIPを取得すると、ビデオを取得できるようになりますが、VPNでは遅れが大きすぎます。私は自分のドローンで以下を実行することによってそれを証明することができます:

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://my-client-vpn-fixed-ip:5000

これは私に良い(しかし少し歪んだ)テスト画像を与えるでしょう。

私が行ったもう一つのテストは私のクライアント上で直接testingrcを実行することです。

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://127.0.0.1:5000

だから今私は私のVPSを介してRTPストリームを中継することについてのこの考えを解決しました。

これが私が試したことです。

無人機の上(NATの後ろ):

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://my-virtual-private-server-fixed-ip:5600

VPS(固定IP、Debianを実行している avconv ):

avconv -i udp://127.0.0.1:5600 -map 0:0 -c copy -f rtp udp://127.0.0.1:5500

クライアント側(私のMac、NATの背後):

ffmpeg -i udp://my-virtual-private-server-fixed-ip:5500 -map 0:0 -c copy -f rtp udp://127.0.0.1:5000

どちらでもないようです avconv また ffmpeg を使用してRTPストリームを検出または接続することができます。 -i udp://adress:port。可能でしょうか。どうやって?

ありがとうございます。


avconvまたはffmpeg(AFAIK)では、UDPソケットを作成してそれを受信データを待機する必要があるため、これは不可能です。専用のUDPリレーが必要です。あなたの最良の選択肢はあなたのVPS経由でVPNを設定することかもしれないので、あなたのドローンは直接にストリームを送ることができます 非公開 クライアントのIP
IanB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.