I'm running ffmpeg
(Windows 7, 64bit) from command line to get a frame from a RTSP stream (second channel from my DVR):
ffmpeg -i "rtsp://xxx.xxx.xxx.xxx:554/user=xxxx&password=xxxx&channel=2&stream=0.sdp" -rtsp_transport tcp -y video.jpg
After running, it waits for about 10 seconds and then i get:
[rtsp @ 026fd840] UDP timeout, retrying with TCP
After another long wait (2 minutes or so), i get:
[rtsp @ 028dd840] Could not find codec parameters for stream 0 (Video: h264): unspecified size
I read somewhere that I have to force using TCP, because changing from UDP to TCP will not work.
I don't understand why -rtsp_transport tcp
is not working.
I'm using ffmpeg version N-62509-g97751e1 built on Apr 17 2014 22:01:31 with gcc 4.8.2 (GCC)
.
Please help me. Thank you.
RTSP uses a Transmission Control Protocol (TCP) connection for control of the streaming media session, although it is also possible to use UDP for this purpose.
ffmpeg has native support for rtmp(s). External lib (librtmp) can be used but is not necessary.
Real Time Streaming Protocol (RTSP) is an application-level network communication system that transfers real-time data from multimedia to an endpoint device by communicating directly with the server streaming the data.
Just put the -rtsp_transport tcp
right after ffmpeg
to apply it on the input stream. Like this:
ffmpeg -rtsp_transport tcp -i "rtsp://x.x.x.x:554/user=x&password=x&channel=2&stream=0.sdp" -y video.jpg
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With