2012-01-02 2 views
0

私はAndroid用プレイリストアプリを作成しています。私はメディアが格納されているサードパーティのサーバーへのrtspリンクを持っています。 Androidで提供されているVideoViewを使用してrtspを再生できます。私はオーディオだけに興味があるので、私はビデオをストリーミングしたくありません。だから私は帯域幅を節約することができ、それはより速くなります。しかし、Android用のrtspリンクからのみオーディオを抽出する方法がわかりません。Android用rtspリンクの音声を抽出する

答えて

1

サーバーが非集約モードでオーディオとビデオをストリーミングしている場合のみ、オーディオストリームを再生できます。非アグレゲーションモードでは、オーディオとビデオに対してPLAYコマンドをseprately使用することができます。

あなたのSDPはAUDIO

C->A: SETUP rtsp://audio.example.com/twister/audio.en RTSP/1.0 
      CSeq: 1 
      Transport: RTP/AVP/UDP;unicast;client_port=3056-3057 

    A->C: RTSP/1.0 200 OK 
      CSeq: 1 
      Session: 12345678 
      Transport: RTP/AVP/UDP;unicast;client_port=3056-3057; 
         server_port=5000-5001 

AUDIO

C->A: PLAY rtsp://audio.example.com/twister/audio.en RTSP/1.0 
      CSeq: 2 
      Session: 12345678 
      Range: smpte=0:10:00- 

    A->C: RTSP/1.0 200 OK 
      CSeq: 2 
      Session: 12345678 
      Range: smpte=0:10:00-0:20:00 
      RTP-Info: url=rtsp://audio.example.com/twister/audio.en; 
      seq=876655;rtptime=1032181 

のセンドPLAYのためにこの

  v=0 
      o=- 2890844526 2890842807 IN IP4 192.16.24.202 
      s=RTSP Session 
      m=audio 0 RTP/AVP 0 
      a=control:rtsp://audio.example.com/twister/audio.en 
      m=video 0 RTP/AVP 31 
      a=control:rtsp://video.example.com/twister/video 

送信SETUPのように見えるかもしれ

セクションRFCの14.1 2326

を参照してくださいもしPLAYに応答してエラー460を受け取ると、サーバが非集約mdoeをサポートしていないことを意味します。この場合、オーディオとビデオを別々にストリーミングすることはできません。

M->C: RTSP/1.0 460 Only aggregate operation allowed 
      CSeq: 5 
関連する問題