我正在为Android创建一个播放列表应用程序。我有一个指向存储媒体的第三方服务器的rtsp链接。我可以使用安卓提供的VideoView播放rtsp。我不想流式传输视频,因为我只对音频感兴趣。因此,我可以节省带宽,它将会更快。但是我不确定如何从Android的rtsp链接中提取音频。
发布于 2012-01-02 17:32:35
仅当您的服务器以非聚合模式流式传输音频和视频时,才能播放音频流。在非加重模式下,音频和视频可以分别使用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
发送音频设置
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
为音频发送播放
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
请参阅RFC2326的14.1节
如果在响应PLAY
时收到错误460,则意味着服务器不支持非聚合mdoe。在这种情况下,不可能将音频和视频分开流式传输
M->C: RTSP/1.0 460 Only aggregate operation allowed
CSeq: 5
https://stackoverflow.com/questions/8699027
复制相似问题