Gatewayへの音声データの送り方について
現在、Androidアプリとして映像・音声用のRTSPサーバを用意し、ラズベリーパイ上で動作するGatewayにRTP形式でデータを送るアプリを開発しています。
Gatewayを通して送っているRTSPの映像(h.264)は相手側(ブラウザアプリ)で表示されているのですが、音声側がうまくいきません。
音声RTSPサーバ側は、OpusにエンコードしたデータをRTP形式でGatewayに送っております。
そのサーバからのデータの送り方が悪いためなのかわかってはいませんが、相手側(ブラウザアプリ)では途切れ途切れの音声のみ再生されているような状態です。
この時の音声RTSPサーバのURLとポート番号を、VLCにて入力して再生を行うことができるため、何かGatewayへのデータの送り方にコツがあるのかと思い質問させていただきました。
以下のGstreamerのテスト音声を使った場合は、相手側(ブラウザアプリ)での再生が行われることは確認できましたので、私側で行なっている動作手順はあっているかと思います。
https://github.com/skyway/skyway-webrtc-gateway/blob/master/gst-sample-script/audio_send.sh
使用しているバージョンやアプリは、以下の通りになります。
Gateway: v0.2.0
ruby:https://github.com/skyway/skyway-webrtc-gateway/blob/master/samples/media_caller.rb
ブラウザアプリ:https://github.com/skyway/skyway-js-sdk/tree/master/examples/p2p-media
-
http://35.200.46.204/#/3.media/media_connection_answer
/media/connections/{media_connection_id}/answerについての質問なのですが、bodyパラメータに設定するjsonで
"audio_params": { "band_width": 0, "codec": "OPUS", "media_id": "au-8f8e8955-460e-4f3a-9440-1c851af328b5", "rtcp_id": "rc-85969322-99c4-4a65-b2d4-e20d86821f13", "payload_type": 111, "sampling_rate": 48000 }
audio_paramsのパラメータにおいて、sampling_rateやband_width以外にもopusの設定値を設定できたりしますでしょうか?
あと、この中でband_widthだけがどのような値を設定したら良いかがいまいちよくわかりません。
PCMをopus形式にencodeするのに使用しているパラメータはSamplingRate、Channel、FrameSizeを使用しています。
加えて、ブラウザプリ側で使用しているSkywayJSSDKについてですが、こちらのanswer時のパラメータにaudioBandWidthというものがありますが、GatewayでOpusの音声を使用する場合はこちらの変更を行う必要がありますでしょうか?
https://webrtc.ecl.ntt.com/skyway-js-sdk-doc/ja/mediaconnection/#answer-options-object
いまいち、これらのパラメータを変更してもよくわからないので、加えて質問させていただきました。
-
返信ありがとうございます。
加えて、質問させてください。
WebRTC GatewayでのTimestampの扱いについてです。
自分で作っているアプリ上で、以下のサイトを元にGateywaに送るRTPパケットを作成しているのですが、Timestampの値をVLC側で再生されるものにすると同じパケットをGatewayに送ったときに、WebRTCの通話相手側のブラウザで再生されないRTPパケットになってしまいます。
http://www.kyastem.co.jp/technical/explanation-codec/about-rtp/
逆も同じです。
Gateway側で取り扱っているTimeStampですが、決まった型であること、単位はmsあるいはnsの値であることなど、決まりはありますでしょうか?
-
H264のペイロードフォーマットについてはRFCで定義されている様式に沿ってお使いください
Please sign in to leave a comment.
Comments
5 comments