C++ 如何将PTAM的视频源更改为IP摄像头?

C++ 如何将PTAM的视频源更改为IP摄像头?,c++,camera,ip-camera,video-tracking,C++,Camera,Ip Camera,Video Tracking,我目前正在从事ptamParallel跟踪和映射的工作,在windows上用visual studio 2008成功编译了它,还成功地将视频源从默认的CMU1394摄像头驱动程序更改为带有EWC libarary的普通usb网络摄像头 然而,我正试图找到一种方法,从Parrot ARDrone 2.0访问ip摄像头的视频源,尽管我能够分别使用opencv和FFmpeg访问ARDrone摄像头,但不知道如何将它们链接在一起,通过网络搜索,我找不到多少资源。如果有人在PTAM上工作,可以分享一些将P

我目前正在从事ptamParallel跟踪和映射的工作,在windows上用visual studio 2008成功编译了它,还成功地将视频源从默认的CMU1394摄像头驱动程序更改为带有EWC libarary的普通usb网络摄像头

然而,我正试图找到一种方法,从Parrot ARDrone 2.0访问ip摄像头的视频源,尽管我能够分别使用opencv和FFmpeg访问ARDrone摄像头,但不知道如何将它们链接在一起,通过网络搜索,我找不到多少资源。如果有人在PTAM上工作,可以分享一些将PTAM视频源更改为ip摄像头或ardrone摄像头的想法


非常感谢

您不需要openCV来收集PaVE数据包并对其进行解码。仅使用FFMPEG就可以做到这一点,我建议使用两个线程,一个是客户端,另一个是h264解码器。但是,将图像数据从openCV转换为cv::Mat非常有用,可以让您访问openCV的所有功能

您可以按如下方式转换为cv::Mat:

cv::Mat img(height,width,CV_8UC3,pictureBGR->data[0]);

其中pictureBGR是您从FFMPEG的avcodec_decode_video2和sws_scale收到的AVFrame指针,最终找到了一个合适的解决方案,但还不是最好的,它使用openCV打开网络摄像头源,包括ip摄像头,现在问题暂时解决了。如果有更好的主意,请帮助我。谢谢