USB摄像头MJPG实现网络摄像头

USB摄像头MJPG实现网络摄像头USB 摄像头 MJPG 实现网络摄像头 感谢大佬的分享 https blog csdn net article details MJPG 简介 MJPG 是 MJPEG 的缩写 但是 MJPEG 还可以表示文件格式扩展名 MJPEG 全名为 Motion Joint Photographic Experts

大家好,我是讯享网,很高兴认识大家。

USB摄像头MJPG实现网络摄像头

感谢大佬的分享:https://blog.csdn.net/_/article/details/

MJPG简介:
  MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.
  MJPEG
  全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式,
  Motion JPEG技术常用与闭合电路的电视摄像机的模拟视频信号“翻译”成视频流,并存储在硬盘上。典型的应用如数字视频记录器等。MJPEG不像MPEG,不使用帧间编码,因此用一个非线性编辑器就很容易编辑。MJPEG的压缩算法与MPEG一脉相承,功能很强大,能发送高质图片,生成完全动画视频等。但相应地,MJPEG对带宽的要求也很高,相当于T-1,MJPEG信息是存储在数字媒体中的庞然大物,需要大量的存储空间以满足如今多数用户的需求。因此从另一个角度说,在某些条件下,MJPEG也许是效率最低的编码/解码器之一。
  MJPEG 是 24-bit 的 “true-color” 影像标准,MJPEG 的工作是将 RGB 格式的影像转换成 YCrCB 格式,目的是为了减少档案大小,一般约可减少 1/3 ~ 1/2 左右。
  MJPEG与MJPG的区别:
  1、mjpeg是视频,就是由系列jpg图片组成的视频。
  2、MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.

MJPG和YUV的区别:
YUV(原始数据)我们的普通摄像头一般只有两种图像数据输出,分别是YUV(原始数据)、MJPEG两者格式,其中当设置YUV格式,对于大分辨率时,其输出帧率很低,例如自己用amcap输出1080p高清分辨率的帧率只有4、5帧,但是当设置为mjpeg格式时,输出的帧率可以达到30帧左右为什么会有这种差别呢?

1.硬件和驱动

1.1用到的工具

ubuntu20.04 PC电脑 USB摄像头 

讯享网

1.2检查是否存在USB摄像头设备

讯享网输入指令:lsusb 查看usb摄像头信息 或者输入:ls /dev 查看是否存在video设备,只有一个设备默认video0 

2.安装MJPG-Streamer

依次通过以下命令安装(直接复制粘贴即可) 通过git方式安装 git clone https://e.coding.net/fivecc/mjpg-streamer/mjpg-streamer.git cd mjpg-streamer cd mjpg-streamer-experimental make sudo make install 这样就安装好了 

3.启动MJPG-Streamer

3.1输入命令


讯享网

3.2参数说明:

mjpg_streamer -i “input_uvc.so -r 640x480 -f 10 -d /dev/video0 -y” -o “output_http.so -p 8080 -w /www”

讯享网-i 输入 input_uvc.so:UVC输入组件 -f 30 :表示30-r 1280*720 :分辨率 -y :YUV格式输入(有卡顿),不加表示MJPG输入(需要摄像头支持) -o 输出 output_http.so :网页输出组件 -w www : 网页输出 -p 8080 :端口 8080 -d 1000 : 时间1S 

4.实时视频接收
创建一个.html 文件 就可以访问
javascript.html

<!DOCTYPE html> <html> <head> <title>实时视频</title> <style> #webcam{ 
      width: 80%; height: 80%; display: block; margin: 10% auto; text-align: center; position: relative; } #webcam img{ 
      width: 100%; height: auto; display: block; margin: 0 auto; } </style> </head> <body> <div id="webcam"> <div> </div> </div> <script type="text/javascript"> var imageNr = 0; // 图片的索引号 var finished = new Array(); // 下载图片的队列 var paused = false; // function createImageLayer() { 
      var img = new Image(); img.style.position = "absolute"; img.style.zIndex = -1; img.onload = imageOnload; img.onclick = imageOnclick; //填你对应的ip和端口 img.src = "http://172.19.8.176:8080/?action=snapshot&n=" + (++imageNr); var webcam = document.getElementById("webcam"); webcam.insertBefore(img, webcam.firstChild); } function imageOnload() { 
      this.style.zIndex = imageNr; while (1 < finished.length) { 
      var del = finished.shift(); // 删除旧照片 del.parentNode.removeChild(del); } finished.push(this); if (!paused) createImageLayer(); } function imageOnclick() { 
      paused = !paused; if (!paused) createImageLayer(); } createImageLayer() </script> </body> </html> 

可以直接打开网址 http://:/javascript.html

小讯
上一篇 2025-03-30 10:48
下一篇 2025-02-14 22:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/130106.html