I'm trying to create a H.264 video stream that looks like it comes from an IP camera using rtsp-and-rtp-tunneled-over-http. I'm not trying to view it in a browser. Since you explained that the stream does not really use http, then it is not feasible to use a web server to proxy it, which I wanted to do to for networking reasons to change its IP address. So I'll set that objective aside.
Referring to my initial 6 questions:
1) live555ProxyServer adds a new subsession, causing VLC to stop displaying streams.
Here's the console log you requested. I see a line, received RTCP bye, which precedes creation of the new subsession. Note that as I view the stream from live555ProxyServer, I also view the stream that is input to live555ProxyServer. The input stream plays without interruption, so it's not clear where the 'bye' comes from that seems to be creating the problem:
root@N:/home/live/proxyServer# ./live555ProxyServer -V -p 10000 rtsp://127.0.0.1:9554/
LIVE555 Proxy Server
(LIVE555 Streaming Media library version 2017.10.28; licensed under the GNU LGPL)
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 9554 on socket 4...
RTSP stream, proxying the stream "rtsp://127.0.0.1:9554/"
Play this stream using the URL: rtsp://192.168.192.203:10000/proxyStream
(We use port 80 for optional RTSP-over-HTTP tunneling.)
...remote connection opened
Sending request: DESCRIBE rtsp://127.0.0.1:9554/ RTSP/1.0
CSeq: 2
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Accept: application/sdp
Received 543 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Date: Fri, 01 Jun 2018 16:08:53 GMT
Content-Type: application/sdp
Content-Base: rtsp://127.0.0.1:9554/
Content-Length: 344
Cache-Control: no-cache
Cseq: 2
v=0
o=- 16049683471436592680 16049683471436592680 IN IP4 Northshore-12
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 2.0.3
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://127.0.0.1:9554/
m=video 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
a=control:rtsp://127.0.0.1:9554/trackID=0
ProxyServerMediaSession[rtsp://127.0.0.1:9554/] added new "ProxyServerMediaSubsession" for RTP/video/H264 track
Sending request: OPTIONS rtsp://127.0.0.1:9554/ RTSP/1.0
CSeq: 3
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Received 124 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Content-Length: 0
Cseq: 3
Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::createNewStreamSource(session id 0)
Initiated: ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::createNewRTPSink()
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::closeStreamSource()
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::createNewStreamSource(session id 1539566957)
Sending request: SETUP rtsp://127.0.0.1:9554/trackID=0 RTSP/1.0
CSeq: 4
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Transport: RTP/AVP;unicast;client_port=38752-38753
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::createNewRTPSink()
Received 270 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Date: Fri, 01 Jun 2018 16:09:27 GMT
Transport: RTP/AVP/UDP;unicast;client_port=38752-38753;server_port=43575-43576;ssrc=34A59586;mode=play
Session: 9d111644d5b71e17;timeout=60
Content-Length: 0
Cache-Control: no-cache
Cseq: 4
ProxyRTSPClient[rtsp://127.0.0.1:9554/]::continueAfterSETUP(): head codec: H264; numSubsessions 1
queue: H264
Sending request: PLAY rtsp://127.0.0.1:9554/ RTSP/1.0
CSeq: 5
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Session: 9d111644d5b71e17
Received 267 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Date: Fri, 01 Jun 2018 16:09:27 GMT
RTP-Info: url=""> Range: npt=5206.075624-
Session: 9d111644d5b71e17;timeout=60
Content-Length: 0
Cache-Control: no-cache
Cseq: 5
Sending request: OPTIONS rtsp://127.0.0.1:9554/ RTSP/1.0
CSeq: 6
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Session: 9d111644d5b71e17
Received 124 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Content-Length: 0
Cseq: 6
Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]: received RTCP "BYE". (The back-end stream has ended.)
ProxyServerMediaSubsession[rtsp://127.0.0.1:9554/,H264]::closeStreamSource()
ProxyRTSPClient::scheduleReset
ProxyRTSPClient[rtsp://127.0.0.1:9554/]::doReset
ProxyServerMediaSubsession[(NULL),H264]::closeStreamSource()
ProxyServerMediaSubsession[(NULL),H264]::~ProxyServerMediaSubsession()
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 9554 on socket 4...
...remote connection opened
Sending request: DESCRIBE rtsp://127.0.0.1:9554/ RTSP/1.0
CSeq: 7
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2017.10.28)
Accept: application/sdp
Received 543 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
Server: VLC/2.0.3
Date: Fri, 01 Jun 2018 16:10:27 GMT
Content-Type: application/sdp
Content-Base: rtsp://127.0.0.1:9554/
Content-Length: 344
Cache-Control: no-cache
Cseq: 7
v=0
o=- 16049683876953695881 16049683876953695881 IN IP4 Northshore-12
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 2.0.3
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://127.0.0.1:9554/
m=video 0 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
a=control:rtsp://127.0.0.1:9554/trackID=0
ProxyServerMediaSession[rtsp://127.0.0.1:9554/] added new "ProxyServerMediaSubsession" for RTP/video/H264 track
2. Changing the rtsp output port used by live555ProxyServer is OK now. I had viewed the wrong URL.
3. live555ProxyServer does not handle -T <http_port_number> correctly.
Here's the console log you requested. Note the many resets and connections refused, and that port 8100 is available according to netstat -a -n:
root@N:/home/live/proxyServer# ./live555ProxyServer -V -p 10000 -T 8100 rtsp://127.0.0.1:9554/
LIVE555 Proxy Server
(LIVE555 Streaming Media library version 2017.10.28; licensed under the GNU LGPL)
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 8100 on socket 4...
RTSP stream, proxying the stream "rtsp://127.0.0.1:9554/"
Play this stream using the URL: rtsp://192.168.192.203:10000/proxyStream
(We use port 80 for optional RTSP-over-HTTP tunneling.)
...Connection to server failed: Connection refused
ProxyRTSPClient[rtsp://127.0.0.1:9554/]: RTSP "DESCRIBE" command failed; trying again in 1 seconds
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 8100 on socket 4...
ProxyRTSPClient::connectToServer calling scheduleReset()
ProxyRTSPClient::scheduleReset
...Connection to server failed: Connection refused
ProxyRTSPClient[rtsp://127.0.0.1:9554/]: RTSP "DESCRIBE" command failed; trying again in 2 seconds
ProxyRTSPClient[rtsp://127.0.0.1:9554/]::doReset
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 8100 on socket 4...
...Connection to server failed: Connection refused
ProxyRTSPClient[rtsp://127.0.0.1:9554/]: RTSP "DESCRIBE" command failed; trying again in 1 seconds
Created new TCP socket 4 for connection
Connecting to 127.0.0.1, port 8100 on socket 4...
ProxyRTSPClient::connectToServer calling scheduleReset()
ProxyRTSPClient::scheduleReset
...Connection to server failed: Connection refused
ProxyRTSPClient[rtsp://127.0.0.1:9554/]: RTSP "DESCRIBE" command failed; trying again in 2 seconds
ProxyRTSPClient[rtsp://127.0.0.1:9554/]::doReset
Created new TCP socket 4 for connection
This repeats indefinitely.
4. Cannot view stream with http URL.
Fixed as you described by using a RTSP URL.
5. Cannot view http stream from Internet.
I consider this a near-ultimate test since the router blocks access to other streams. I forwarded private port 80 from the machine with live555ProxyServer to public port 8100, for both tcp and udp, for the LAN IP address used by the machine with live555ProxyServer. I know my ISP is not blocking http traffic because I have a web server on my LAN that is accessible from the Internet via public port 8000. I set up access to the tunneled stream in VLC and can view the tunneled stream directly from the machine with live555ProxyServer. I used the configuration in question 1 above (so it's without -T xxxx). On my LAN, I used the following URL in VLC to try to view the stream via the Internet, without success: rtsp://<my public IP address>:8100/proxyStream. A similar procedure for viewing a web server on my LAN via the Internet, works. How do I fix this ?
6. Regarding a pipe, I'll worry about this later.
7. (new) Is it necessary to place a trailing "/" after each rtsp source in the command line ?
-- NewtownGuy
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel