C++ 通过命令行中的ffmpeg或opencv从IP摄像头捕获图像,获得灰色图像

C++ 通过命令行中的ffmpeg或opencv从IP摄像头捕获图像,获得灰色图像,c++,ffmpeg,rtsp,ip-camera,C++,Ffmpeg,Rtsp,Ip Camera,现在我有一个IP摄像机。我试图通过ffmpeg(像这样:ffmpeg-rtsp_transport tcp-I“我的rtsp流地址”-y-f image2 test.jpg)获得一个图像。没关系!或者我试着通过opencv来实现这一点,也没问题。但是当我在vlc中打开流时,同时,我试着捕捉图像,哦,我只得到了一个灰色图像。 为什么?如果我在vlc中打开流两次,也可以!如果同时拍摄图像和查看rtsp流,只会得到一个灰色图像。这是IP摄像头的原因吗?试试这个 g++-s-o ffmpeg\u rts

现在我有一个IP摄像机。我试图通过ffmpeg(像这样:ffmpeg-rtsp_transport tcp-I“我的rtsp流地址”-y-f image2 test.jpg)获得一个图像。没关系!或者我试着通过opencv来实现这一点,也没问题。但是当我在vlc中打开流时,同时,我试着捕捉图像,哦,我只得到了一个灰色图像。 为什么?如果我在vlc中打开流两次,也可以!如果同时拍摄图像和查看rtsp流,只会得到一个灰色图像。这是IP摄像头的原因吗?

试试这个

g++-s-o ffmpeg\u rtsp rtsp.cpp-lavcodec-lavutil-lswscale-lavformat


运行:
/ffmpeg\u rtsp“您的rtsp流地址”

对不起,当我编译rtsp.cpp时,出现了一个问题。在此范围内未声明“av\u frame\u alloc”。非常感谢!!我将av_-frame_-alloc改为avcodec_-alloc_-frame,效果很好。很抱歉,这个程序的效果也不是很好,刚开始的时候,一些捕获的图像还可以。大约20幅图像。但其余捕获的图像都用马赛克覆盖。这只是一个例子,在工作中,我们使用更有效的方法来保存流,并验证框架谢谢你。这是我在stackoverflow中的第一个问题,甚至是第一次查看此网站。没有你的帮助,我不知道如何调用此ffmpeg函数,谢谢