我正在研究rtsp。我想通过rtsp开发android。 rtsp服务器是VLC。 客户端是java。 当我发送“SETUP”时,我收到“RTSP/1.0 459 Aggregate operation not allowed”;
我的代码示例:
DESCRIBE rtsp://192.168.0.196:8554/test.sdp RTSP/1.0
Cseq: 2
return content:
RTSP/1.0 200 OK
Server: VLC/2.1.0
Date: Fri, 29 Nov 2013 04:14:13 GMT
Content-Type: application/sdp
Content-Base: rtsp://192.168.0.196:8554/test.sdp
Content-Length: 742
Cache-Control: no-cache
Cseq: 2
v=0
o=- 15439064194650748030 15439064194650748030 IN IP4 WIN-AF6P80LVIJ0
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 2.1.0
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://192.168.0.196:8554/test.sdp
m=audio 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 mpeg4-generic/44100/2
a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=12100000000000000000000000000000; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;
a=control:rtsp://192.168.0.196:8554/test.sdp/trackID=0
m=video 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKKy0A8ARPywgAAB9IAAXcAHjBlQ=,aO48sA==;
a=control:rtsp://192.168.0.196:8554/test.sdp/trackID=1
SETUP rtsp://192.168.0.196:8554/test.sdp RTSP/1.0
Cseq: 3
Transport: RTP/AVP;UNICAST;client_port=16264-16265
return content:
RTSP/1.0 459 Aggregate operation not allowed
Server: VLC/2.1.0
Date: Fri, 29 Nov 2013 04:14:19 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 3
return error:RTSP/1.0 459 Aggregate operation not allowed
Server: VLC/2.1.0
Date: Fri, 29 Nov 2013 04:14:19 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 3
我想解决这个问题,谢谢!
最佳答案
SETUP 请求用于设置 rtp/rtcp 连接对,该连接对仅专用于一个流(例如视频轨道或一个音频轨道)。
当您发出 SETUP 时,您指定了将用于 rtp 和 rtcp 的两个端口。
如果演示文稿有多个流(如您的情况),您必须为要接收的每个流发出 SETUP 请求,并为每个流打开两个端口。在您的情况下,媒体文件有一个音频和一个视频流,因此您必须为 rtsp://192.168.0.196:8554/test.sdp/trackID=0
发出 SETUP
一个用于 rtsp://192.168.0.196:8554/test.sdp/trackID=1。
trackID=X
部分是服务器返回的 sdp 描述中包含的部分,位于 “a=control:”
属性下。
关于RTSP/1.0 459 不允许聚合操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20278472/