ffmpegを使用してマルチキャストから1つのクライアントにストリーミングできますか?

ffmpegを使用してマルチキャストから1つのクライアントにストリーミングできますか?

ソース(このソースrtp://@XXXX:YのTVボックスマルチキャスト)からインターネット(私の場合は電話またはLAN上の他のデバイス)にストリーミングしようとしていますが、認識できません。私が使用するコマンドは次のとおりです。

ffmpeg -i rtp://@X.X.X.X:Y -vcodec copy -f mpegts udp://127.0.0.1:1234

しかし、期待どおりに動作しません。つまり、ffmpegを実行している同じコンピュータでvlcを開いてストリーミングできますが、同じLAN上の他のコンピュータではストリーミングできません。誰でも私を助けることができますか?

ありがとうございます!

編集:最終的にマルチキャストコンテンツをクライアントに配信する「udpxy」というソフトウェアインストールの問題を修正しました。私はそれをラズベリーにインストールし、この目的に非常にうまくいきます。

すべての説明に感謝します。私がしたいこととトランスコーダの使用の制限を理解するのに役立ちました。私はffmpegを使ってudpxyで同じことをすることができると思いますが、テレビボックスIPを直接公開できます。

答え1

指定されたコマンドに対してコマンドが実行されるコンピュータ127.0.0.1localhostもちろん、同じコンピュータでのみvlcを開き、ストリームを再生できます。

同じLAN上の別のコンピュータに転送するには、少なくともLAN上のコンピュータのIPアドレスが必要です。

このコマンドを実行しているコンピュータまたは電話機の両方が固定パブリックIPを持っていないため、「インターネットにストリーミング」することはできません。どちらもNAT(Network Address Translation)の背後にあります。だからあなたはそうすることはできません。

LANにいる場合、「他のコンピュータ」で直接マルチキャストストリームを使用するのを妨げるのはなぜですか(結局それはマルチキャストであり、これがマルチキャストの目的です...)?良いRTPマルチキャストストリームをエラーが発生しやすい単一アドレスUDPパケットに変換するのは私にとって理想的な解決策ではないようです。

答え2

この回答ポイントを使用して問題を解決します。

TVボックス(マルチキャスト) - > ffmpeg(MPEGトランスポートストリームへのマルチキャスト) - >クライアントVLC? (MPEGT受信)

考える:

ビデオストリーミングはローカルLANをシャットダウンしません。

MPEGトランスポートストリームを受信するクライアントは、マルチキャストストリームに参加または受信できません。

TVボックスはMPEGトランスポートストリームを転送できません。

@dirktが言ったように。 「良いRTPマルチキャストストリームをエラーが発生しやすい単一アドレスUDPパケットに変換するのは私にとって理想的な解決策ではないようです...」

UDPをTCPに変更してローカルホストからクライアントアドレスに変更すると機能しますか?

ffmpeg -i rtp://@X.X.X.X:Y -vcodec copy -f mpegts tcp://192.168.1.100:1234

tcp://192.168.1.100:1234- クライアントPCがmpegtsストリームを受信します。

rtp://@X.X.X.X:Y--TVボックス(224.0.0.0 - 239.255.255.255)によって送信される放送ストリーム。

理想的には、TV ボックスの送信を mpegts に変更するか、クライアントの受信を mpegts からブロードキャストに変更して、中間の ffmpeg 変換を削除することをお勧めします。

語彙:

mpegts- MPEGトランスポートストリーム。エラー修正と同期モードでオーディオ、ビデオなどをカプセル化します。

IPマルチキャスト- 1つのソースPCと複数のターゲットPC。 IPv4アドレス範囲:224.0.0.0 - 239.255.255.255。そのうちのいくつかはルーティング、ゲートウェイなどから除外されます。 「クライアント」はマルチキャスト「ストリーム」に参加します。一対だ。メッセージが失われたり、順序が合わないように配信される可能性があります。

関連情報