我在16.04系统上工作,并成功安装了启用了FFMPEG标志的opencv 3.1。我仔细检查了这是cv2.getBuildInformation()的情况,我得到了FFMPEG = YES。
我正在尝试在我的工作场所打开一个私人服务器上的宿舍视频(我登录到VPN,如果有疑虑),我可以通过浏览器访问此视频。但是cv2的视频捕捉失败了。
>>> cap = cv2.VideoCapture("https://xxx.mp4", cv2.CAP_ANY) #dummy url
>>> cap
<VideoCapture 0x7f63300fa4b0>
>>> cap.isOpened()
False
https网址始终如此。它似乎能够很好地使用本地视频。我尝试了一些不同的东西:最初认为这是一个gstreamer问题所以我检查了我的插件,有一些gst-bad版本(参考:https://github.com/GStreamer/gst-plugins-ugly),删除了那些并取而代之的是好的版本,没有快乐。还试图明确告诉videoCapture在阅读视频时使用cv2.CAP_ANY和cv2.CAP_FFMPEG标志,仍然没有运气。
我在编译opencv时禁用了Gstreamer标志,但即使设置为ON,我的问题也没有区别。
我一直无法找到这个问题的解决方案,并且几天来一直在寻找和尝试不同的事情!有任何想法吗?
最终,我放弃了尝试安装并重新安装opencv3.1,并切换到opencv 3.4.1。有了这个,以及我目前(作为原始问题的帖子)配置gstreamer和ffmpeg,我只需要为gstreamer寻找的libopencv_core.so.2.4创建符号链接,其余的工作正常。
希望这有助于某人!
我还没弄清楚opencv3.1究竟是什么问题(就像我提到的那样,这是我的其他同事所拥有的配置,而且功能对他们来说效果很好),但这是我在花钱后最终做的事情。关于这个问题的日子。