2012-01-02 3 views
0

Android 용 재생 목록 앱을 만들고 있습니다. 미디어가 저장된 타사 서버에 대한 rtsp 링크가 있습니다. Android에서 제공하는 VideoView를 사용하여 rtsp를 재생할 수 있습니다. 나는 오디오에만 관심이 있기 때문에 비디오를 스트리밍하고 싶지 않다. 그래서 대역폭을 절약 할 수 있으며 더 빨라질 것입니다. 하지만 Android 용 rtsp 링크에서만 오디오를 추출하는 방법을 모르겠습니다.Android 용 rtsp 링크에서 오디오 추출

답변

1

서버가 비 집계 모드로 오디오 및 비디오를 스트리밍하는 경우에만 오디오 스트림을 재생할 수 있습니다. 비 응집 모드에서는 오디오 및 비디오에 대해 PLAY 명령을 seprately 사용할 수 있습니다.

당신의 SDP는

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 

는 RFC의 14.1 절을 참조하시기 바랍니다 AUDIO

에 대한 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 

보내기 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 

전송 설정처럼 보일 수 2326

만약 PLAY에 대한 응답으로 460 오류가 발생하면 서버가 비 집계 mdoe를 지원하지 않습니다. 이 경우 오디오 및 비디오를 별도로 스트리밍 할 수 없습니다.

M->C: RTSP/1.0 460 Only aggregate operation allowed 
      CSeq: 5 
관련 문제