【BB-Black测试】+ MJPG视频服务器

2019-07-21 20:56发布

Linux初学,整理一下笔记。希望后面我还可以坚持继续做更多的笔记:)

MJPG视频服务器的搭建
设备: Beaglebone Black + Logitech C525 + 外接+5V电源。

说明:因为有的摄像头消耗电流比较大,所以这里选择用+5V电源来给Beaglebone Black供电。
使用的是Angstrom系统。


步骤:
1. 接好电源,接好网线,USB线。
2. 使用SSH方式登录BBB

Using username "root".
root@192.168.7.2's password:

执行命令uname -aLinux beaglebone 3.8.13 #1 SMP Wed Sep 4 09:09:32 CEST 2013 armv7l GNU/Linux
这就是使用的系统

通过命令ifconfig可以看到BBB的网络配置情况:
root@beaglebone:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 90:59:AF:64:48:18  
          inet addr:192.168.1.104  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::9259:afff:fe64:4818/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2342 (2.2 KiB)  TX bytes:9427 (9.2 KiB)
          Interrupt:56

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:205 (205.0 B)  TX bytes:205 (205.0 B)

usb0      Link encap:Ethernet  HWaddr 02:EA:E2:8C:EF:D0  
          inet addr:192.168.7.2  Bcast:192.168.7.3  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:241 errors:0 dropped:0 overruns:0 frame:0
          TX packets:137 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:25127 (24.5 KiB)  TX bytes:25892 (25.2 KiB)

3.接上摄像头C525,其他支持MJPEG编码的也可以用吧!
命令lsusb

Bus 001 Device 002: ID 046d:0826 Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

其中 046d:0826 Logitech 就是摄像头了。

命令v4l2-ctl --list-devices
HD Webcam C525 (usb-musb-hdrc.1.auto-1):
        /dev/video0

命令 v4l2-ctl --list-formats  查看支持的编码方式ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : MJPEG

4. 好了,前面都是设备准备阶段。下面开始Streamer Video部分了。
安装配套的软件
opkg install subversion libjpeg-dev imagemagick

然后把软件checkout到本地

svn checkout http://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code

执行完成之后,本地就多了一个 mjpg-streamer-code的文件夹。

执行下面的命令:
cd mjpg-streamer-code/

root@beaglebone:~/mjpg-streamer-code# ls
doc              mjpg-streamer                  udp_client
mjpeg-client  mjpg-streamer-experimental  uvc-streamer

root@beaglebone:~/mjpg-streamer-code# cd mjpg-streamer-experimental/
root@beaglebone:~/mjpg-streamer-code/mjpg-streamer-experimental# make


5. 启动服务器
root@beaglebone:~/mjpg-streamer-code/mjpg-streamer-experimental# ./mjpg_streamer   -i "./input_uvc.so" -o "./output_http.so"

通常会有下面的输出:
MJPG Streamer Version: svn rev: 3:182
DBG(input_uvc.c, input_init(), 136): argv[0]=UVC webcam grabber
DBG(input_uvc.c, input_init(), 302): input id: 0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: not limited
i: Format............: JPEG
i: TV-Norm...........: DEFAULT


。。。。

o: www-folder-path...: disabled
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

6. 观看视频。使用VLC Media Player
打开VLC Media Player,
这里需要使用BBB的局域网IP地址,还记得前面执行过 ifconfig命令吧,里面有个etho,ip地址就在里面的。

在VLC Media Player的界面里面右键,选择 open network stream

Screenshot from 2014-07-26 22:07:27.png
里面的地址替换成你的地址。

然后paly,就可以了。
Screenshot from 2014-07-26 22:33:14.png
这是我用截图截下来的图片,上传似乎有乱码,不过在PC上显示是没有问题的。

先这样,如果不行,待会儿重拍再上传。

PS:新手,可能写的太详细了些。就当是笔记吧!:lol
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
b18041379695
2019-07-22 15:16
你好板子连上之后能识别到USB摄像头,但是不存在v4l2这个指令,该怎么办啊?尝试了几种方法,也没有找到linux/vediodev.h头文件,所以也没有那个v4l2指令,但是试了几种方法也没能实现添加那个头文件,所以不能实现采集视频图像

一周热门 更多>