ffmpeg 返回“方法设置失败:404 未找到”

Ale*_*lex 3 ffmpeg rtsp

我们使用 ffmpeg(内部版本 ffmpeg-20190628-098ab93-win32-static)在 Win 10 系统上从摄像头 RTSP 流中拍摄快照。在某些相机上,我们收到此错误:

[rtsp @ 06813ac0] method SETUP failed: 404 Not Found
rtsp://username:password@example.com: Server returned 404 Not Found
Run Code Online (Sandbox Code Playgroud)

这是我们使用的示例命令:

ffmpeg -y -i rtsp://username:password@example.com -vframes 1 -pix_fmt yuvj420p 
  -vf select='eq(pict_type\,I)' -q:v 1 _test.jpg
Run Code Online (Sandbox Code Playgroud)

然而,VLC 可以从同一台机器加载相同的流(尽管我们不能使用 VLC)。此外,我们还打开了 ffmpeg 的防火墙(它弹出了两个防火墙对话框,我们允许它通过)。

我们找到了有关该DESCRIBE错误的帖子,但没有找到有关 的帖子SETUP。任何帮助表示赞赏。谢谢。

更新:在 VLC 中,RTSP 流由于某种原因两次要求凭据。想知道是否是这个原因。

Ale*_*lex 7

@AmitSharma提供了解决方案:我们需要将 RTSP 地址用双引号引起来。

这不起作用:

ffmpeg -y -i rtsp://username:password@example.com -vframes 1 -pix_fmt yuvj420p 
  -vf select='eq(pict_type\,I)' -q:v 1 _test.jpg
Run Code Online (Sandbox Code Playgroud)

我们使用了它,它的效果就像一个魅力:

ffmpeg -y -i "rtsp://username:password@example.com" -vframes 1 -pix_fmt yuvj420p 
  -vf select='eq(pict_type\,I)' -q:v 1 _test.jpg
Run Code Online (Sandbox Code Playgroud)