mjpg-streamer移植(2020毕业设计)

我的毕业设计是做一个基于Linux开发板的视频传输,当然还有其他的一些东西,别的不扯,直接来。

mjpg-streamer的移植是做得我比较痛苦的,大家很经常用的那一个源码:https://sourceforge.net/projects/mjpg-streamer/,已经转到github了,到了github上面,会发现有一个特别重要的,在input_uvc目录下的makefile没了???真的就没了,关键是这个Makefile根本不起作用啊,没有他也可以编译,按照结构,这个Makefile是需要指定jpeg的头文件路径和库路径的啊。也许这个github的初衷就已经不再是为ARM服务了。

如果你直接make出来,就算你所有Makefile的CC都换成交叉编译工具链,出来的居然是一个x86架构的mjpg-streamer,真的佛了!

昨天花了一天,从早做到完,废寝忘食搞好了。第二次,是在CSDN找到了一个配套的源码,极有可能是https://sourceforge.net/projects/mjpg-streamer/的,因为文件名都比较相似,但是还有有问题,不知道为什么大家喜欢搞这些,所有其实我还是很反感一些博客的,好多篇其实都是一模一样的,看得我心累啊。但是也是谢谢那些无私分享的朋友们,让我们一起分享技术吧。

 

搞不定的就不多说,直接上搞得定的!

平台:IMX6ULL(飞思卡尔的,现在应该叫NXP了)

 

源码包解压出来出来是上图这样的。关键的是这个根目录的Makefile和plugins文件

 

第一步:

修改交叉编译工具链

先用grep看看谁要改的,然后发现,全都是在plugins的各个子目录下和根目录的这个Makefile。

一个一个改太麻烦了,直接用指令:

sed -i 's/CC = gcc/CC = arm-linux-gnueabihf-gcc/g' `grep -rl "CC = gcc" .`

(这个可以把CC = gcc换成CC = arm-linux-gnueabihf-gcc),sed命令很好用的!当然你的这个交叉编译工具链不一定是这一个,想知道是什么,直接arm-linux然后tab键出来,再加上gcc就可以了。

第二步

修改plugins中input_uvc目录下的Makefile文件

 


                修改
                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
                为
                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/ljh/jpeg/include
                修改
                $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                为
                $(CC) $(CFLAGS) -ljpeg -L/home/ljh/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

       新增的这两个路径,分别是你的jpeg的头文件路径和库文件路径,大家如果没有移植过jpeg,需要先移植。

在这里我第一次第二次移植的时候会出现些问题,但是成功的这一次没有,有可能会提示你找不到jpedlib.h文件,但是你明明设置对了头文件路径,也明明在里面,但是他就是说没找到,这里可以很粗暴的,直接在代码中,用决定路径来包含头文件

#include "xxx/xxx/jpeglib.h",当然这个对移植性很不好。

 

第三步

直接make,居然就成功了,给大家看看我做的笔记是怎么心情的

file命令看看,不再是x86架构了,是arm的

 

然后将库文件,所有的.so到开发板的新建的mjpeg目录下,mjpg_streamer到开发板的bin下并改变权限。

需要权限,建议sudo,也建议在开发的时候,用NFS挂载根文件系统,方便多了,不然下载太麻烦了。

 

我的摄像头是yuyv格式的,所以需要加-y指令,这个mjpg-streamer指令其实和树莓派上用的指令几乎一样的

mjpg_streamer -i "/home/root/mjpg/input_uvc.so -d /dev/video0 -y -r 640x480 -f 10" -o "/home/root/mjpg/output_http.so -w ./www"

这样看起来是不是很简单,但是我却搞了好久好久啊!!!网上的源码真的参差不齐啊,我直接给大家吧,这些错误,先行者犯就行了。资源在审核,其实网上也有了,既然是开源的项目,就不用C币了!心疼我自己下载的时候的c币,资源还在审核,先放博客好了,资源出来的,我放评论里面。有问题可以一起交流,微信号:klfxbl

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值