MJPG-Streamer推流,将摄像头图像推送到http网页,

mjpeg推流,将摄像头推送到http网页

一、工具准备

  1. Linux系统
  2. usb摄像头

二、安装MJPG-Streamer

依赖的库和工具:

#库
sudo apt-get install libjpeg8-dev  #JPEG支持库(图像相关)

sudo apt-get install libv4l-dev   #4l是小写"L"(底层摄像头驱动的上层应用库)

#工具

#sudo apt-get install cmake  #下载编译工具(一般都有,没有需要下载)

#sudo apt-get install git    #(一般都有,没有需要下载)

安装与运行

# 方式包含但不限于以下两种

# 方式一    git

# pi@raspberrypi:~ $git clone  https://e.coding.net/fivecc/mjpg-streamer/mjpg-streamer.git

# 方式二    wget

pi@raspberrypi:~ $wget https://github.com/Five-great/mjpg-streamer/archive/master.zip

pi@raspberrypi:~ $unzip master.zip

#两种方式实现的效果大致相同

pi@raspberrypi:~ $ cd mjpg-*  # 进入mjpg-streamer-master文件夹

pi@raspberrypi:~/mjpg-streamer-master $ cd mjpg-*   # 进入mjpg-streamer-experimental文件夹

pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ make   #编译

pi@raspberrypi:~/mjpg-streamer-master/mjpg-streamer-experimental $ sudo make install #安装

# 至此安装完毕

# 接下来就可以运行

pi@raspberrypi: ~ $  ./mjpg_streamer -i "./input_uvc.so -n  -r 1920x1080 " -o "./output_http.so -w ./www"

运行之后我们就可以在服务器的8080端口看到我们的摄像头啦

MJPG-Streamer推流,将摄像头图像推送到http网页,_第1张图片

运行参数

mjpg_streamer

# mjpg_streamer本身只有两个主要参数

# -i:指定生成动态库

# input_uvc.so:用来处理输入的数据

# -o:指定生成另外一个动态库

# output_http.so:用来处理输出的数据,用来给到浏览器

# 注意:MJPG-Streamer还有一个插件叫做output_rtsp.so;其实它是浪得虚名,它并不能把我们的输入转换成rtsp协议输出

 input_uvc.so

[-d | --device ].......: video device to open (your camera)
 [-r | --resolution ]...: the resolution of the video device,
                          can be one of the following strings:
                          QQVGA QCIF CGA QVGA CIF PAL 
                          VGA SVGA XGA HD SXGA UXGA 
                          FHD 
                          or a custom value like the following
                          example: 640x480
 [-f | --fps ]..........: frames per second
                          (camera may coerce to different value)
 [-q | --quality ] .....: set quality of JPEG encoding
 [-m | --minimum_size ].: drop frames smaller then this limit, useful
                          if the webcam produces small-sized garbage frames
                          may happen under low light conditions
 [-e | --every_frame ]..: drop all frames except numbered
 [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
 [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                          it up to the driver using the value "auto"
 [-t | --tvnorm ] ......: set TV-Norm pal, ntsc or secam
 [-u | --uyvy ] ........: Use UYVY format, default: MJPEG (uses more cpu power)
 [-y | --yuv  ] ........: Use YUV format, default: MJPEG (uses more cpu power)
 [-fourcc ] ............: Use FOURCC codec 'argopt', 
                          currently supported codecs are: RGB24, RGBP 
 [-timestamp ]..........: Populate frame timestamp with system time
 [-softfps] ............: Drop frames to try and achieve this fps
                          set your camera to its maximum fps to avoid stuttering
 [-timeout] ............: Timeout for device querying (seconds)
 [-dv_timings] .........: Enable DV timings queriyng and events processing

output_http.so

[-d | --device ].......: video device to open (your camera)
 [-r | --resolution ]...: the resolution of the video device,
                          can be one of the following strings:
                          QQVGA QCIF CGA QVGA CIF PAL 
                          VGA SVGA XGA HD SXGA UXGA 
                          FHD 
                          or a custom value like the following
                          example: 640x480
 [-f | --fps ]..........: frames per second
                          (camera may coerce to different value)
 [-q | --quality ] .....: set quality of JPEG encoding
 [-m | --minimum_size ].: drop frames smaller then this limit, useful
                          if the webcam produces small-sized garbage frames
                          may happen under low light conditions
 [-e | --every_frame ]..: drop all frames except numbered
 [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
 [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                          it up to the driver using the value "auto"
 [-t | --tvnorm ] ......: set TV-Norm pal, ntsc or secam
 [-u | --uyvy ] ........: Use UYVY format, default: MJPEG (uses more cpu power)
 [-y | --yuv  ] ........: Use YUV format, default: MJPEG (uses more cpu power)
 [-fourcc ] ............: Use FOURCC codec 'argopt', 
                          currently supported codecs are: RGB24, RGBP 
 [-timestamp ]..........: Populate frame timestamp with system time
 [-softfps] ............: Drop frames to try and achieve this fps
                          set your camera to its maximum fps to avoid stuttering
 [-timeout] ............: Timeout for device querying (seconds)
 [-dv_timings] .........: Enable DV timings queriyng and events processing

你可能感兴趣的:(ubuntu,运维)