2012-01-02 5 views
0

Я создаю приложение для плейлистов для Android. У меня есть ссылка rtsp на сторонний сервер, на котором хранится носитель. Я могу играть в rtsp с помощью VideoView, предоставляемого Android. Я не хочу передавать видео, поскольку меня интересует только аудио. Поэтому я могу сохранить полосу пропускания, и это будет быстрее. Но я не уверен, как извлечь аудио только из ссылки rtsp для Android.Извлечь аудио из ссылки rtsp для Android

ответ

1

Вы можете воспроизводить аудиопотоки только в том случае, если ваш сервер передает потоковое аудио и видео в режиме без агрегации. В режиме неагрегации вы можете использовать команду PLAY отдельно для аудио и видео.

ваш SDP может выглядеть следующим образом

  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 

Настройка отправки для 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 

Пожалуйста, обратитесь в разделе 14.1 RFC 2326

Если uou получает ошибку 460 в ответ на PLAY, это означает, что сервер не поддерживает non aggregation mdoe. В этом случае невозможно передать АУДИО и ВИДЕО отдельно

M->C: RTSP/1.0 460 Only aggregate operation allowed 
      CSeq: 5 
Смежные вопросы