linux的dev目录下video0和video1哪个是摄像头,树莓派摄像头没有/dev/video0设备节点的问题...

安装mjpg-streamer

安装依赖库1

2sudo apt-get update

sudo apt-get install libjpeg8-dev imagemagick libv4l-dev cmake

下载mjpg-streamer1

2

3

4

5mkdir mjpg-streamer

cd mjpg-streamer

wget https://codeload.github.com/jacksonliam/mjpg-streamer/zip/master

mv master mjpg-streamer-master.zip

unzip mjpg-streamer-master.zip

安装mjpg-streamer1

2

3

4

5cd mjpg-streamer-master/mjpg-streamer-experimental

sudo make clean all

sudo cp mjpg_streamer /usr/local/bin

sudo cp output_http.so input_uvc.so /usr/local/lib/

sudo cp -R www /usr/local/www

配置PATH1sudo vim /etc/profile

加上两行

1

2#mjpg-streamer

export LD_LIBRARY_PATH=/opt/mjpg-streamer/

1source profile

启动mjpg-streamer方法1:LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i “input_uvc.so” -o “output_http.so -w /usr/local/www”

方法2:配置好PATH之后,执行 mjpg_streamer -i “/usr/local/lib/input_uvc.so” -o “/usr/local/lib/output_http.so -w /usr/local/www”

查看效果

浏览器打开 192.168.2.58:8080/stream.html (ip换成自己的)

填坑1:找不到/dev/video01

2

3

4

5

6

7

8

9MJPG Streamer Version.: 2.0

i: Using V4L2 device.: /dev/video0

i: Desired Resolution: 640 x 480

i: Frames Per Second.: -1

i: Format............: JPEG

i: TV-Norm...........: DEFAULT

ERROR opening V4L interface: No such file or directory

Init v4L2 failed !! exit fatal

i: init_VideoIn failed

这个报错,是因为使用直接插到树莓派视频CSI接口的摄像头造成的。如果使用usb摄像头,则会在/dev目录下出现相关的设备。而直接插到树莓派视频CSI接口的摄像头,使用的是树莓派中的camera module,它是放在/boot/目录下以固件的形式加载的,不是一个标准的v4l2的摄像头ko驱动,所以加载起来之后会找不到/dev/video0的设备节点,这是因为这个驱动是在底层的,v4l2这个驱动框架还没有加载,所以要在/etc/modules里面添加一行bcm2835-v4l2,这句话意思是在系统启动之后会加载这个文件中模块名,这个模块会在树莓派系统的/lib/modules/xxx/xxx/xxx下面,添加之后重启系统,就会在/dev/下面发现video0设备节点了。这个文件名可能不是叫/etc/modules,较早的版本是/etc/modules-load.d/rpi-camera.conf.

然后,重启一下。

配置nginx来转发视频数据流

安装nginx1sudo apt-get install nginx

编写nginx配置文件

在/etc/nginx/sites-available/ 目录下新建配置文档mjpg,添加如下内容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17upstream backend{

ip_hash;

server 127.0.0.1:8080; ##mjpg-streamer监听的端口是8080

}

server {

listen 8000 default_server;##另外找一个端口来转发,比如8000

listen [::]:8000 default_server ipv6only=on; ##记得配上ipv6的8000端口

root /home/pi/;##配好root地址

# Make site accessible from http://localhost/

charset utf-8;

access_log /var/log/nginx/mjpg.access.log;

location / {

proxy_pass http://backend;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

1

2

3cd /etc/nginx/sites-enabled

sudo ln -s /etc/nginx/sites-available/mjpg mjpg

sudo service nginx restart

查看效果

首先,浏览器要支持ipv6

查看 [fb72:e349:2cd8:52e0:f9d0:e1bf:fb76:1def]:8080/stream.html

应该可以看到监控图像。

如果看不到,检查mjpg-streamer和nginx是否都打开了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值