【问题标题】:Force FFMPEG to use TCP protocol when reading a RTSP Stream读取 RTSP 流时强制 FFMPEG 使用 TCP 协议
【发布时间】:2014-06-07 22:21:52
【问题描述】:

我正在从命令行运行ffmpeg(Windows 7、64 位)以从 RTSP 流(我的 DVR 的第二个通道)中获取帧:

ffmpeg  -i "rtsp://xxx.xxx.xxx.xxx:554/user=xxxx&password=xxxx&channel=2&stream=0.sdp" -rtsp_transport tcp -y video.jpg

运行后,它等待大约 10 秒,然后我得到:

[rtsp @ 026fd840] UDP timeout, retrying with TCP

又经过漫长的等待(2 分钟左右),我得到:

[rtsp @ 028dd840] Could not find codec parameters for stream 0 (Video: h264): unspecified size

我在某处读到我必须强制使用 TCP,因为从 UDP 更改为 TCP 将不起作用。

我不明白为什么-rtsp_transport tcp 不起作用。

我正在使用ffmpeg version N-62509-g97751e1 built on Apr 17 2014 22:01:31 with gcc 4.8.2 (GCC)

请帮助我。 谢谢。

【问题讨论】:

  • 试试这个:ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -rtsp_transport tcp rtsp://ip_address:port

标签: tcp ffmpeg rtsp


【解决方案1】:

只需将-rtsp_transport tcp 放在ffmpeg 之后即可将其应用于输入流。像这样:

ffmpeg -rtsp_transport tcp -i "rtsp://x.x.x.x:554/user=x&password=x&channel=2&stream=0.sdp" -y video.jpg

【讨论】:

  • 为什么-rtsp_transport tcp有两次?
  • @Notinlist 只是忘记将其从原始答案中删除 :) 已编辑!
  • ffmpeg”部分很重要。否则它对我不起作用。
  • 当我尝试这个时,我得到“找不到选项 rtps_transport”。我知道这是一个旧的,但任何建议都会非常感激。
  • @DaveSims 看起来像是错字:rtsp 不是 rtps
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 2012-03-04
  • 2020-12-18
  • 2019-09-16
  • 2013-02-23
  • 2016-01-28
  • 2019-05-18
相关资源
最近更新 更多