在ubuntu14.04使用opencv3.4.1调用网络摄像头代码:
在ubuntu14.04使用opencv3.4.1调用网络摄像头时,使用RTSP URL传输摄像机流,可以正常显示图像但是后台一直反馈 "Invalid UE golomb code"错误,如下图所示:
问题原因:
UE是指user equipment,golomb code是指格伦布编码(Golomb code)是一种无损的数据压缩方法,由数学家Solomon W.Golomb在1960年代发明。Golomb编码只能对非负整数进行编码,符号表中的符号出现的概率符合几何分布(Geometric Distribution)时,使用Golomb编码可以取得最优效果,也就是说Golomb编码比较适合小的数字比大的数字出现概率比较高的编码。它使用较短的码长编码较小的数字,较长的码长编码较大的数字。
总的来说是opencv的视频类VideoCapture接收到视频媒体流时候格式不正确导致后台报错,需要正确安装编码解码依赖库FFMPEG来帮助视频解码
解决办法:
在编译opencv之前要先卸载原有的版本:
sudo apt-get -qq remove ffmpeg x264 libx264-dev
ubuntu14.04直接安装ffmpeg找不到安装源,所以需要:
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg
到此为止既可以安装完成ffmpeg依赖库,剩下的依赖库安装和opencv编译正常进行即可解决此问题。