RTSP keeplive & video freezing
Posted: 04 May 2010 19:16
All,
I use VLC to view live MPEG4 video from video encoder appliances (such as Optelecom or Coretec). In most cases I view video using multicast but sometimes I need to view unicast video from these encoders using RTSP. Up to now I've been stuck using VLC version 0.8.6d because the best i can it's the last version of VLC where the live video didn't lock up after 15-30 seconds. In all the new versions of VLC (tried versions 1.0.*) the video locks up. I'd really like to get away from using this really old version of VLC but I can't until this RTSP issue is resolved.
When using VLC 0.8.6d I see the following RTSP exchange:
Here's the RTSP exchange when using VLC 1.0.5:
Unlike with the 0.8.6d version VLC does NOT occasionally transmit a GET_PARAMETER request every once in a while. My guess is that the RTSP server will stop transmitting video if it doesn't receive a GET_PARAMETER within a certain period of time (kind of like a keep alive). In the VLC messages window I also get this right as the video locks up:
I tried this against three different encoders (i.e. RTSP servers) and they all behaved the same way (0.8.6d runs fine, later versions of VLC fail). Based on this I would assume that it's an issue with Live555. I've looked at the RTSP specification and there is a mention of using GET_PARAMETER as a way to test client or server liveness ("ping") but it says "may", doesn't say "must".
There was a bug ticket filed here http://webcache.googleusercontent.com/s ... clnk&gl=si and looks like it was resolved. But I don't have access to some of links within the ticket to see how it was resolved or how I should enable it the 1.0.* versions of VLC. Any ideas?
Thanks for any feedback,
Dave Irwin
I use VLC to view live MPEG4 video from video encoder appliances (such as Optelecom or Coretec). In most cases I view video using multicast but sometimes I need to view unicast video from these encoders using RTSP. Up to now I've been stuck using VLC version 0.8.6d because the best i can it's the last version of VLC where the live video didn't lock up after 15-30 seconds. In all the new versions of VLC (tried versions 1.0.*) the video locks up. I'd really like to get away from using this really old version of VLC but I can't until this RTSP issue is resolved.
When using VLC 0.8.6d I see the following RTSP exchange:
Code: Select all
Sending request: OPTIONS rtsp://10.20.100.90/video/input1/encoder1/transmitter5
RTSP/1.0
CSeq: 6
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received OPTIONS response: RTSP/1.0 200 OK
CSeq: 6
Server: Optelecom-NKF RTSPServer/1.0
Public: OPTIONS, DESCRIBE, SETUP
Sending request: DESCRIBE rtsp://10.20.100.90/video/input1/encoder1/transmitter5
RTSP/1.0
CSeq: 7
Accept: application/sdp
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received DESCRIBE response: RTSP/1.0 200 OK
CSeq: 7
Server: Optelecom-NKF RTSPServer/1.0
Content-Type: application/sdp
Content-Length: 239
Need to read 239 extra bytes
Read 239 extra bytes: v=0
o=- 1272987392 1272987392 IN IP4 10.20.100.90
s=Video: input1 encoder1 transmitter5
m=video 0 RTP/AVP 101
a=control:rtsp://10.20.100.90/video/input1/encoder1/transmitter5
a=rtpmap:101 MP4V-ES/90000
a=fmtp:101 profile-level-id=1
Sending request: SETUP rtsp://10.20.100.90/video/input1/encoder1/transmitter5 RT
SP/1.0
CSeq: 8
Transport: RTP/AVP;unicast;client_port=1750-1751
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received SETUP response: RTSP/1.0 200 OK
CSeq: 8
Server: Optelecom-NKF RTSPServer/1.0
Session: 429183932;timeout=20
Transport: RTP/AVP;unicast;client_port=1750-1751;server_port=5008-5009
Accept-Ranges: NPT
Sending request: PLAY rtsp://10.20.100.90/video/input1/encoder1/transmitter5 RTS
P/1.0
CSeq: 9
Session: 429183932
Range: npt=0.000-
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received PLAY response: RTSP/1.0 200 OK
CSeq: 9
Server: Optelecom-NKF RTSPServer/1.0
Range: npt=now-
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds t
he client's buffer size (65536). 214 bytes of trailing data will be dropped!
#################################
# Here the video has started. Then approximately every 20 seconds VLC will send out
# a GET_PARAMETER request to the RTSP server. This continues as long as the video
# is playing.
#################################
Sending request: GET_PARAMETER rtsp://10.20.100.90/video/input1/encoder1/transmi
tter5 RTSP/1.0
CSeq: 10
Session: 429183932
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received GET_PARAMETER response: RTSP/1.0 200 OK
CSeq: 10
Server: Optelecom-NKF RTSPServer/1.0
Session: 429183932
Sending request: GET_PARAMETER rtsp://10.20.100.90/video/input1/encoder1/transmi
tter5 RTSP/1.0
CSeq: 11
Session: 429183932
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received GET_PARAMETER response: RTSP/1.0 200 OK
CSeq: 11
Server: Optelecom-NKF RTSPServer/1.0
Session: 429183932
#################################
# Here I manually stop the stream
#################################
Sending request: TEARDOWN rtsp://10.20.100.90/video/input1/encoder1/transmitter5
RTSP/1.0
CSeq: 12
Session: 429183932
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received TEARDOWN response: RTSP/1.0 200 OK
CSeq: 12
Server: Optelecom-NKF RTSPServer/1.0
Code: Select all
Sending request: OPTIONS rtsp://10.20.100.90/video/input1/encoder1/transmitter5
RTSP/1.0
CSeq: 6
User-Agent: VLC media player (LIVE555 Streaming Media v2010.01.07)
Received OPTIONS response: RTSP/1.0 200 OK
CSeq: 6
Server: Optelecom-NKF RTSPServer/1.0
Public: OPTIONS, DESCRIBE, SETUP
Sending request: DESCRIBE rtsp://10.20.100.90/video/input1/encoder1/transmitter5
RTSP/1.0
CSeq: 7
Accept: application/sdp
User-Agent: VLC media player (LIVE555 Streaming Media v2010.01.07)
Received DESCRIBE response: RTSP/1.0 200 OK
CSeq: 7
Server: Optelecom-NKF RTSPServer/1.0
Content-Type: application/sdp
Content-Length: 239
Need to read 239 extra bytes
Read 239 extra bytes: v=0
o=- 1272987392 1272987392 IN IP4 10.20.100.90
s=Video: input1 encoder1 transmitter5
m=video 0 RTP/AVP 101
a=control:rtsp://10.20.100.90/video/input1/encoder1/transmitter5
a=rtpmap:101 MP4V-ES/90000
a=fmtp:101 profile-level-id=1
Sending request: SETUP rtsp://10.20.100.90/video/input1/encoder1/transmitter5 RT
SP/1.0
CSeq: 8
Transport: RTP/AVP;unicast;client_port=1750-1751
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
Received SETUP response: RTSP/1.0 200 OK
CSeq: 8
Server: Optelecom-NKF RTSPServer/1.0
Session: 429183932;timeout=20
Transport: RTP/AVP;unicast;client_port=1750-1751;server_port=5008-5009
Accept-Ranges: NPT
Sending request: PLAY rtsp://10.20.100.90/video/input1/encoder1/transmitter5 RTS
P/1.0
CSeq: 9
Session: 429183932
Range: npt=0.000-
User-Agent: VLC media player (LIVE555 Streaming Media v2010.01.10)
Received PLAY response: RTSP/1.0 200 OK
CSeq: 9
Server: Optelecom-NKF RTSPServer/1.0
Range: npt=now-
Code: Select all
main error: ES_OUT_SET_(GROUP_)PCR is called too late, increasing pts_delay to 150 ms
main error: ES_OUT_RESET_PCR called
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
main debug: Buffering 0%
There was a bug ticket filed here http://webcache.googleusercontent.com/s ... clnk&gl=si and looks like it was resolved. But I don't have access to some of links within the ticket to see how it was resolved or how I should enable it the 1.0.* versions of VLC. Any ideas?
Thanks for any feedback,
Dave Irwin