問題タブ [rtp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - G.729、G.723などでバイト配列をデコードする方法は?
RTP接続があり、すべてのペイロード部分を抽出して、それらを順番にバイト配列に連結できます。
この配列をデコードするにはどうすればよいですか? (コーデックを知っていると仮定します) voip コーデックを実装するライブラリはありますか?
言語: C#
java - 適切なJavaRTP/RTCPスタック
私はJava用のまともなRTPスタック実装を見つけるのに苦労してきました。JMFまたはFMJは、コーデックとオーディオ/ビデオキャプチャのすべてのベルとホイッスルが必要ないため、ここではオプションではありません。RTPストリームを作成し、そこにデータをダンプして、そこからデータを読み取る必要があります。
私はjlibrtpを使用していますが、そのAPIは怪しげで、ロギングはSystem.outに基づいており、時々NPEをいくつか取得します。
また、RTCPのサポートも便利です(ここでも、自分でコントロールを処理したいので、APIが必要です)。
要約すると:
- クリーンなAPI;
- 「手動」データ処理。
- まともなロギング;
- RTCPサポート;
- 依存関係はありません。
- サーバー側での使用に最適化されています(特定の瞬間にアクティブな多くのRTPセッション)。
そのようなライブラリはありますか、それともコーディングする必要がありますか?;)
ipv6 - ipv6 のアイデア、ipv6 で RTP ストリームを取得する方法。vlan は明らかにサポートしていません
ipv6 で RTP ストリームを生成するアイデアを教えてください。
vlan で試しましたが、成功しません/
このストリームの未加工のダンプを取得してもかまいません。テストする必要があります...
ありがとう、どんな助けでも大歓迎です。
c++ - 例のRTPパケットのストリーム
ユーザー定義のプロトコルを介してRTPトラフィックをトンネリングしようとしていますが、この設定をテストしたいと思います。サンプルRTPパケットを生成し、それらをライブラリにトンネリングするために使用できるC ++ライブラリはありますか?
ありがとう。
format - RTPプロファイルの新しいペイロードタイプ
新しいRTPプロファイルを設計しています。プロファイルタイプに割り当てることができる、次に使用可能なRTPペイロードタイプを特定するにはどうすればよいですか?
java - RTP RFC(3550)解釈の質問
RFC 3550(RTP)のJava実装を行っていますが、小さな問題が発生しました。
第11章の第2段落では、次のように述べています。
(...)参加者は、着信RTPまたはRTCPパケットの送信元ポートが発信RTPまたはRTCPパケットの宛先ポートとして使用できると想定してはなりません(MUSTNOT)。RTPデータパケットが双方向に送信される場合、各参加者のRTCP SRパケットは、他の参加者がRTCPの受信用に指定したポートに送信する必要があります。(...)
RTPには、これらのアドレスとポート(SDPまたはその他のセットアッププロトコルまで)を通知するメカニズムがないため、この段落を「不明なソースからデータを受信している場合は、破棄するだけ」と理解できます。 。
ただし、セクション6.3.3では、基本的に、RTPまたは非BYE RTCPパケットが不明なSSRCで受信された場合、新しい参加者をテーブルに追加する必要があると述べています。
要約すると:
- 不明なSSRCを受信した場合は、新しい参加者を追加する必要があります。
- パケットの送信元IP/ポートをその参加者のパケットの宛先として使用することはできません。
- SDPは、各RTP参加者が使用するSSRCを定義していません。
- RTP参加者を手動で追加できます(他の方法で検出されます)が、SSRCがどうなるかはわかりません。
つまり、百万ドルの問題は、予期しないSSRCをどのように処理するのかということです。
rtp - コーデック h264 を使用してビデオの gtalk rtp ペイロード データを再生するにはどうすればよいですか?
私は gtalk ビデオの rtp パケットを扱います。gtalk rtp ペイロード データを使用してビデオを作成したいと考えています。私の検索 gtalk によると、ビデオには h264 コーデックを使用します。
gtalk ビデオで送信されたすべての rtp ペイロードを結合し、このコメント "ffplay -f h264 "filename" を使用して ffplay を再生したかったのですが、表示されません
「コーデックパラメータが見つかりませんでした(ビデオ:h264、yuv420p)」というエラーが表示されます。私の間違いは、rtp ペイロードを組み合わせることだと思います。このペイロードを再生するにはどうすればよいですか?
助けてくれてありがとう。
乾杯。
java - HTTP および Java 経由の QuickTime RTSP/RTP
私はウェブカメラを持っています。RTSP/RTP over HTTP トンネリングを使用して作業できます (ポート 80 のみが開かれているため)。QuickTime プレーヤーがビデオを再生します。
このビデオをキャッチし、Java を使用して AVI コンテナーのディスクに保存したいと考えています。JMFは使えますか?「RTSP/RTP over HTTP トンネリング」に対応していますか?
QTJ と聞いたことがありますが、Windows と Mac OS のみです。
私のカメラは Linux ベースで、内部に Darwin があると思います
audio - UDP を介して Wi-Fi ネットワークでオーディオをストリーミングする
同じWiFiネットワーク内の2台のPC間でオーディオストリームを送信する小さなソフトウェアを実装する必要があります..
簡単に言えば、マイクのようなデバイスからオーディオを取得し、このオーディオをリアルタイムで送信する必要があります..おそらくJavaを使用します..
UDP 経由でデータを送信するには、次のようにします。
...
私の質問は、オーディオ ソースをパケットに分割して buf に保存するにはどうすればよいですか?
別の PC でパケットを受信してから、「再構築」または直接再生するにはどうすればよいですか?
それは正しい方法です?どうもありがとう。やあ!
streaming - gtreamer を使用した RTP 経由の mp3 ストリーミング再生
私は gstreamer を使用しており、主に音楽再生機能をいじっています。
現在、RTP を使用して LAN 経由で mp3 ストリームを送信しようとしていますが、今のところ成功していません。
送信者側では、次のパイプラインを使用します。
gst-launch -v filesrc location=./my_music_file.mp3 ! ffdemux_mp3 ! rtpmpapay ! udpsink ポート=6969 ホスト=192.168.0.200
受信側では、次のパイプラインを使用します。
gst-launch -v udpsrc port=6969 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int)96, ssrc=(guint)1951256090、clock-base=(guint)1711290778、seqnum-base=(guint)24773" ! rtpmpadepay ! flmp3dec ! パルスシンク
受信側からの出力は次のとおりであるため、明らかにエラーはありません。
パイプラインを一時停止に設定しています...
パイプラインはライブであり、PREROLL は必要ありません ...
パイプラインを PLAYING に設定しています ...
新しいクロック: GstSystemClock
...しかし、音は奇妙に聞こえます。まるで速く弾きすぎたかのようです。
mp3 ファイルをローカルで再生して、オーディオが機能することをテストしました。また、wav/µLaw ファイルをストリーミングして rtp をテストしました。これはすべてうまくいきます。
他の方法でも問題に直面しようとしました。たとえば、次のパイプラインを使用しました。これは、audiotestsrc/amrnb コーデックでうまく機能します。
gst-launch gstrtpbin name=rtpbin audiotestsrc ! アムンベンク!rtpamrpay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink ホスト=192.168.0.200 ポート=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1
しかし、ラメで同じパイプラインを使用すると、受信側でもエラーは発生しませんが、「速すぎる」出力があります。
送信者: gst-launch gstrtpbin name=rtpbin audiotestsrc ! lamemp3enc ! rtpmpapay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink ホスト=192.168.0.200 ポート=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1
受信者: gst-launch -v udpsrc port=5002 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int) 96" ! rtpmpadepay ! flmp3dec ! パルスシンク
私のパイプラインの何が問題なのか、誰にもわかりませんか?
ご支援ありがとうございました、
ホルヘ