mjpg-streamer 移植到OK6410,从摄像头采集视频直播
2016-05-13 09:58
267 查看
一、
准备libjpeg-turbo-1.3.1.tar.gz源码包 下载地址: http://download.csdn.net/detail/theblackbeard/9518846
准备mjpeg-streamer-r63.tar.gz源码包 下载地址: http://download.csdn.net/detail/theblackbeard/9518853
我使用的摄像头是中星微的,在编译内核的时候,驱动里面选上zc3xx就行,这个摄像头有硬件压缩JPEG格式它返回来的只能是这个格式。pc上用的红帽企业版6,开发板OK6410内核是3.0.
二、编译libjpeg
解压libjpeg-turbo-1.3.1.tar.gz:
tar xvzf libjpeg-turbo-1.3.1.tar.gz
进入解压后的目录:
cd libjpeg-turbo-1.3.1
新建一个文件夹_install : mkdir _install (用来保存一会儿生成的头文件和库函数)
配置:
./configure --prefix={填写你自己的目录}/libjpeg-turbo-1.3.1/_install --host=arm-linux
编译:
make
安装:make install
然后在_install的目录下就有了相关文件,如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/07/823390a6a88499124ea523ba5506a189)
把lib下面的库群全都拷贝到开发板的lib目录下,我的开发板是nfs挂载的,所以很方便拷贝
cp ./lib/*so* /home....../rootfs/lib/
三、编译移植mjpg-streamer
先解压:tar xvzf mjpg-streamer
进入 cd mjpg-streamer
修改顶层目录下的Mkefile文件: 将CC = gcc 改成:CC=arm-linux-gcc
然后修改各级子目录下面的Makefile,都是修改这一项。这一步有点繁琐,有好几个Makefile都需要修改。
修改完以后,打开plugins/input_uvc/Makefile
要对这一个,Makefile在进行修改,指明编译的时候需要用到的lib库和头文件,
(1)先指明头文件:
大约在第14行,有这样一句:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
要在这一行后面加上:
-I /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/include
其中杠大写的i,指明编译的头文件,后面就是之前编译生成的lib的头文件路径
(2)指明libjpeg库
大约在第24行有这一句:
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
在中间加上:
-L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib
加完以后是:
$(CC) $(CFLAGS) -ljpeg -L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
然后编译:make
这时候就会生成mjpg-streamer这个程序,以及一些.so的库,把这些库同样都拷贝到开发板的lib目录下,
把mjpg-streamer拷贝到开发板bin目录下面
然后打开超级终端或者SecureCRT,在开发板目录下,执行:
mjpg _streamer -i "input_uvc.so /dev/video2 -f 10 -r 32*240 " -o "output_http.so -w www" (我的摄像头节点是/dev/video2)
然后通过windows下的VLC播放器,播放串流,http://192.168.1.6:8080/action=stream就可以看到摄像头的视频,也可以在浏览器里面输入地址观看,但貌似只有火狐支持,其他浏览器只支持看图片:http://192.168.1.6:8080/action=snapshot(我用360浏览器只能查看图片,其他浏览器没试过)
执行到这里,有些人可以成功,有些人没发成功,没成功的会报一些错误,大致也就是库的路径等等问题,我就是没成功的,当时错误信息没记下来,但是可以按照我下面的方法来做:
在pc上新建一个文件夹:mj-pg(名字无所谓),把之前生成的libjpeg目录下面的所有lib库都拷贝到里面,把mjpg-streamer生成的.so库也拷贝进去,把mjpg-streamer这个程序也拷贝进去,然后把mj-pg这个文件夹整个拷贝到开发板的某个目录下面,我是拷贝到home目录下的,然后在SecureCRT中进入到/home/mj-pg目录下,执行一行语句:export LD_LIBRARY_PATH="$(pwd)"
然后再执行:
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
这样一来应该就可以成功启动起来,然后用VLC播放器播放串流,或者火狐浏览器就可以看了。
下面演示一下用VLC观看的步骤:
Windows下面的VLC:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/07/0a5553182d9d750041cd3bf22f511a9a)
打开以后按快捷键 Ctrl+N:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/07/d33cfc58f6cd41a7aee003be43263b79)
在URL中输入好地址,就可以播放了。
准备libjpeg-turbo-1.3.1.tar.gz源码包 下载地址: http://download.csdn.net/detail/theblackbeard/9518846
准备mjpeg-streamer-r63.tar.gz源码包 下载地址: http://download.csdn.net/detail/theblackbeard/9518853
我使用的摄像头是中星微的,在编译内核的时候,驱动里面选上zc3xx就行,这个摄像头有硬件压缩JPEG格式它返回来的只能是这个格式。pc上用的红帽企业版6,开发板OK6410内核是3.0.
二、编译libjpeg
解压libjpeg-turbo-1.3.1.tar.gz:
tar xvzf libjpeg-turbo-1.3.1.tar.gz
进入解压后的目录:
cd libjpeg-turbo-1.3.1
新建一个文件夹_install : mkdir _install (用来保存一会儿生成的头文件和库函数)
配置:
./configure --prefix={填写你自己的目录}/libjpeg-turbo-1.3.1/_install --host=arm-linux
编译:
make
安装:make install
然后在_install的目录下就有了相关文件,如下图:
把lib下面的库群全都拷贝到开发板的lib目录下,我的开发板是nfs挂载的,所以很方便拷贝
cp ./lib/*so* /home....../rootfs/lib/
三、编译移植mjpg-streamer
先解压:tar xvzf mjpg-streamer
进入 cd mjpg-streamer
修改顶层目录下的Mkefile文件: 将CC = gcc 改成:CC=arm-linux-gcc
然后修改各级子目录下面的Makefile,都是修改这一项。这一步有点繁琐,有好几个Makefile都需要修改。
修改完以后,打开plugins/input_uvc/Makefile
要对这一个,Makefile在进行修改,指明编译的时候需要用到的lib库和头文件,
(1)先指明头文件:
大约在第14行,有这样一句:
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
要在这一行后面加上:
-I /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/include
其中杠大写的i,指明编译的头文件,后面就是之前编译生成的lib的头文件路径
(2)指明libjpeg库
大约在第24行有这一句:
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
在中间加上:
-L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib
加完以后是:
$(CC) $(CFLAGS) -ljpeg -L /root/home/kinds_of_tests/mjpg-streamer/libjpeg-turbo-1.3.1/_install/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
然后编译:make
这时候就会生成mjpg-streamer这个程序,以及一些.so的库,把这些库同样都拷贝到开发板的lib目录下,
把mjpg-streamer拷贝到开发板bin目录下面
然后打开超级终端或者SecureCRT,在开发板目录下,执行:
mjpg _streamer -i "input_uvc.so /dev/video2 -f 10 -r 32*240 " -o "output_http.so -w www" (我的摄像头节点是/dev/video2)
然后通过windows下的VLC播放器,播放串流,http://192.168.1.6:8080/action=stream就可以看到摄像头的视频,也可以在浏览器里面输入地址观看,但貌似只有火狐支持,其他浏览器只支持看图片:http://192.168.1.6:8080/action=snapshot(我用360浏览器只能查看图片,其他浏览器没试过)
执行到这里,有些人可以成功,有些人没发成功,没成功的会报一些错误,大致也就是库的路径等等问题,我就是没成功的,当时错误信息没记下来,但是可以按照我下面的方法来做:
在pc上新建一个文件夹:mj-pg(名字无所谓),把之前生成的libjpeg目录下面的所有lib库都拷贝到里面,把mjpg-streamer生成的.so库也拷贝进去,把mjpg-streamer这个程序也拷贝进去,然后把mj-pg这个文件夹整个拷贝到开发板的某个目录下面,我是拷贝到home目录下的,然后在SecureCRT中进入到/home/mj-pg目录下,执行一行语句:export LD_LIBRARY_PATH="$(pwd)"
然后再执行:
./mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w www"
这样一来应该就可以成功启动起来,然后用VLC播放器播放串流,或者火狐浏览器就可以看了。
下面演示一下用VLC观看的步骤:
Windows下面的VLC:
打开以后按快捷键 Ctrl+N:
在URL中输入好地址,就可以播放了。
相关文章推荐
- 浅谈tcp_nodelay的作用
- PHP语言 -- 新建流程
- 英语单词词根词缀和词性互相转换
- jQuery val和text赋值无效
- PHP 返回13位时间戳的实现代码
- textVIew 在输入时 设置行数并且自适应高度 上移动
- 【AngularJS】学习笔记
- 修改CPAN安装源
- 高仿微博--启动页面
- iOS引导界面与主界面之间切换
- ScrollView嵌套ListView
- cacti function
- 如何学习新技术
- 如何学习新技术
- Java定时调度 Timer类和TimerTask类
- 通用的erlang优化设置
- 如何学习新技术
- 如何撤消当前提交
- html页面高度不同浏览器兼容性设置
- Linux 自动同步服务器时间