Force FFMPEG to use TCP protocol when reading a RTSP Stream

白昼怎懂夜的黑 提交于 2019-12-09 05:10:58

问题


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.


回答1:


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


来源:https://stackoverflow.com/questions/23238295/force-ffmpeg-to-use-tcp-protocol-when-reading-a-rtsp-stream

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!