• ubuntu 中将DSLR相机用作网络摄像头


    一、安装所需软件

    sudo apt-get install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg
    

    二、Video4Liunx 配置

    • 1.安装完所需的软件后,通过usb将相机链接到pc,相机应设置电脑控制开状态
      终端输入以下命令
    sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
    
    • 2.手动加载内核模块(通过modprobe)意味着modprobe 每次重新启动时都必须记住。为确保在系统启动时启用此模块,你需要编辑配置文件/etc/modules;并创建一个新的模块配置文件/etc/modprobe.d/dslr-webcam.conf:

      /etc/modules:

      • 在/etc/modules文件末尾添加dslr-webcam一个新行,如果这个文件全都是注释,只需要在最后一行添加 dslr-webcam。
      sudo vi /etc/modules
      
      # /etc/modules: kernel modules to load at boot time.
      #
      # This file contains the names of kernel modules that should be loaded
      # at boot time, one per line. Lines beginning with "#" are ignored.
      
      dslr-webcam
      

      使用sudo 创建一个新文件 /etc/modprobe.d/dslr-webcam.conf

      sudo vi /etc/modprobe.d/dslr-webcam.conf
      
      • 将以下内容添加到该文件中,并保存
      # Module options for Video4Linux, needed for our DSLR Webcam
      alias dslr-webcam v4l2loopback
      options v4l2loopback exclusive_caps=1 max_buffers=2
      
    • 3.重启后出现perform MOK management

      系统版本:Ubuntu 20.04
      (1)当进入蓝色背景的界面perform mok management后,选择enroll mok,
      (2)进入enroll mok界面,选择continue,
      (3)进入enroll the key 界面 ,选择yes,
      (4)接下来输入你在安装驱动时输入的密码,
      (5)之后跳到蓝色背景的界面perform mok management选择第一个reboot

    三、gPhoto2 DSLR测试

    • 1.列出自动检测到的摄像机及其连接的端口。
    gphoto2 --auto-detect
    

    • 2.相机状态摘要
    gphoto2  --summary
    

    • 3.显示在 libgphoto2 数据库中指定的相机和驱动程序能力。用于 --summary 查询摄像机概览。
    gphoto2 --abilities
    

    • 4.gphoto2相关命令
    gphoto2
    

    四、DSLR网络摄像头视频测试

    • 捕获一张照片并保存到当前路径下
    gphoto2 --capture-image-and-download
    

    • 相机流式传输视频
    gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
    
    # 从相机的图像传感器捕获日期gphoto2
    # 将该数据导入ffmpeg,这将 mjpeg 流从中获取ghoto2并将其公开给 Video4Linux 环回设备
    
    • 推流到srs服务器
    # 高清流(libx264或者h264)
    gphoto2 --stdout --capture-movie | ffmpeg -re -i - -vcodec libx264 -f flv rtmp://127.0.0.1:1935/myapp/test
    
  • 相关阅读:
    J2SE-反射
    c3p0 连接数据库失败的问题
    c# 调用存储过程
    存储过程使用truncate时
    Parcelable intent传递对象时,需要将该对象实现Parcelable 或者Serializable
    android intent 在打开设置activity的时候在监听事件的内部 适用setclass()方法时 不是直接适用this 关键字
    c# 读取appconfig文件
    Oracle 连接数据库的几种方式
    通过反射获得方法,和绑定事件
    js 验证
  • 原文地址:https://www.cnblogs.com/hziwei/p/15949540.html
Copyright © 2020-2023  润新知