解决ROS的usb_cam节点无法正常读取mjpeg格式摄像头的方法
来源:互联网 发布:node angularjs 编辑:程序博客网 时间:2024/04/28 07:16
原链接:http://community.bwbot.org/topic/144
本文解决办法来源:http://answers.ros.org/question/217382/garbled-image-problem-on-usb_cam/
使用usb_cam读取mjpeg格式的usb摄像头时,如果提示类似下述的错误,是因为链接的ffmpeg解码库存在问题。
[mjpeg @ 0x223e460] overread 8[mjpeg @ 0x223e460] overread 8[mjpeg @ 0x223e460] error count: 68[mjpeg @ 0x223e460] error y=38 x=1[mjpeg @ 0x223e460] error count: 64[mjpeg @ 0x223e460] error y=34 x=1[mjpeg @ 0x223e460] error count: 68[mjpeg @ 0x223e460] error y=40 x=4[mjpeg @ 0x223e460] error count: 64[mjpeg @ 0x223e460] error y=42 x=1[mjpeg @ 0x223e460] error count: 64[mjpeg @ 0x223e460] error y=31 x=0[mjpeg @ 0x223e460] error count: 64[mjpeg @ 0x223e460] error y=30 x=37[mjpeg @ 0x223e460] overread 8
解决办法是安装新版本的ffmpeg,然后修改usb_cam的cmake依赖库链接设置
1.ffmpeg的安装
mkdir ~/ffmpeg_sourcescd ~/ffmpeg_sourceswget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2tar xjvf ffmpeg-snapshot.tar.bz2cd ffmpegPATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --enable-shared --enable-pic --extra-cflags="-fPIC"make -jmake install
2. 现在ffmpeg开发库已经安装在home目录下的ffmpeg_build文件夹内,修改usb_cam的cmake文件
为了方便自己,这里有一份已经修改好的usb_cam代码,git clone下来后,将CMakeLists.txt文件中对应下文部分的xiaoqiang替换成自己的用户名即可。ffmpeg库API一直在变化更新,上述修改好的usb_cam版本解决了这些匹配问题,因此推荐使用。
## pkg-config libraries## find_package(PkgConfig REQUIRED)## pkg_check_modules(avcodec libavcodec REQUIRED)## pkg_check_modules(swscale libswscale REQUIRED)set(avutil_LIBRARIES /home/xiaoqiang/ffmpeg_build/lib/libavutil.so.55)set(avcodec_LIBRARIES /home/xiaoqiang/ffmpeg_build/lib/libavcodec.so.57)set(swscale_LIBRARIES /home/xiaoqiang/ffmpeg_build/lib/libswscale.so.4)set(ffmpeg_INCLUDE_DIRS /home/xiaoqiang/ffmpeg_build/include/)
3.执行catkin_make,重新编译usb_cam,问题解决
例如
cd ~/Documents/roscatkin_make
4.对于蓝鲸智能的小强用户,现在使用下述命令可以正常以mjpeg方式获取小车的usb摄像头数据,修改launch文件中的分辨率为1920*1080还能获取30fps的1080p图像。
roslaunch usb_cam ov2610mjpg.launch
阅读全文
0 0
- 解决ROS的usb_cam节点无法正常读取mjpeg格式摄像头的方法
- ROS上利用usb_cam读取摄像头图像
- ros.usb_cam驱动的安装
- ros.usb_cam驱动的安装
- ubuntu14.04 利用ros usb_cam包驱动摄像头后显示图像上下颠倒的解决方法
- VS2012无法正常读取txt的一种解决…
- C#读取excel数据时,文本格式和数值格式的内容无法正常全部读取
- ROS上安装usb_cam驱动运行USB摄像头
- 解决.net framework 2.0无法正常卸载的方法
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- Linux环境下使用V4L2+opencv以MJPEG格式读取USB摄像头并实时显示
- 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩
- 普通摄像头的数据输出格式YUV与mjpeg之间联系、DCT离散余弦变换去噪跟压缩
- ros中录制摄像头采集的图像的方法
- ROS的软件包、节点
- ros节点的分析
- JSON的格式和使用方法以及键名为非正常变量的读取方法
- 关于Android6.0运行时权限处理
- ROS学习之pluginlib
- 好用到起飞的软件
- MongoDB介绍和Ubuntu下的安装
- socket 封包和解包
- 解决ROS的usb_cam节点无法正常读取mjpeg格式摄像头的方法
- sqlserver完整备份一个新库的方法
- SIM卡基础知识
- Ajax笔记
- Qt开发之文件读写
- Array
- Ubuntu VNC 如何调整分辨率
- git 工具GitEye使用
- 热设计