精华内容
下载资源
问答
  • 树莓派插USB摄像头使用记录一、选择摄像头二、查看插入的USB设备命令三、查看相机命令四、使用 一、选择摄像头 买摄像头时要关注的: 1、是不是在Linux下免驱的。 2、焦距,拍摄目标越远,焦距选越大的,拍10米远的...

    一、选择摄像头

    买摄像头时要关注的:
    1、是不是在Linux下免驱的。
    2、焦距,拍摄目标越远,焦距选越大的,拍10米远的人可以选6mm焦距。
    3、一般焦距长的视角小。
    4、分辨率,选择1080p的(分辨率由像素与图像画幅大小共同决定)。
    5、选无畸变的图像看起来舒服。

    二、查看插入的USB设备命令

    lsusb
    

    三、查看相机命令

    ls /dev/video*
    

    在这里插入图片描述

    四、使用

    多出来两个设备,测试/dev/video1可用。
    python编程序时将视频捕捉函数的参数换成1即可。

    像下面的报错一般是由于视频源的问题,正常情况下打印帧frame的话是可以输出矩阵的。解决办法是调整一下VideoCapture()函数里的参数。
    在这里插入图片描述

    展开全文
  • liunx usb摄像头使用

    2021-09-28 13:39:12
    # 查看摄像头支持的视频参数 sudo v4l2-ctl --all --list-formats-ext # 查看摄像头所有参数 sudo v4l2-ctl -d /dev/video0 --all # 安装ffmpeg sudo apt-get install ffmpeg # ffmpeg视频采集 ffmpeg -f v4l2 -...

    由于无人机项目需要搭载双光摄像头,故学习一下linux下摄像头的使用。

    一、准备

    首先要看自己手上的摄像头在linux下是否免驱,也就是看其是不是UVC设备。UVC是USB Video Class的简写, UVC设备可以直接使用linux提供的USB Video Class Linux device driver。UVC再往下一层是V4L2,Video for Liunx,它是Linux下的视频采集框架,V4L2不仅支持USB摄像头,还能支持其他的视频输入,例如HDMI等。首先用 lsusb 命令找到device ID,得到形如32e4:0415这样的VID:PID,然后 lsusb -d VID:PID -v | grep "14 Video"  得到这样的输出则说明是UVC摄像头。

    bFunctionClass         14 Video
    bInterfaceClass         14 Video

    或者使用 ls /dev/video* 输出/dev/video0之类的信息也说明是免驱的。

    如果发现不是UVC设备,就只能找厂商要驱动程序源码或者SDK了。

    对于UVC设备,我们可以用许多方法获取其视频。首先测试一下设备有没有正常工作,可以使用ubuntu自带的软件cheese(茄子)打开摄像头看一下画面。这里只要有显示就行,我之前一直纠结于cheese显示的画面分辨率低,帧率也低,想把它调好,其实没必要。有的摄像头可以工作在多种模式,cheese只会使用其中一种默认设置,我们是调不了的。

    说到这里,我们可以安装v4l-utils工具,查看一下摄像头的基本参数,如果你的摄像头支持多种模式(例如不同的分辨率,不同的pixel format,不同的帧率),这里都会显示出来。

    # 安装v4l-utils
    sudo apt install v4l-utils
    
    # 查看摄像头支持的视频参数
    sudo v4l2-ctl --all --list-formats-ext
    
    # 查看摄像头所有参数
    sudo v4l2-ctl -d  /dev/video0 --all

    这里我的输出是这样

    Index       : 0
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : Motion-JPEG
            Size: Discrete 3840x2160
                Interval: Discrete 0.033s (30.000 fps)
                Interval: Discrete 0.040s (25.000 fps)
                Interval: Discrete 0.050s (20.000 fps)
                Interval: Discrete 0.067s (15.000 fps)
                Interval: Discrete 0.100s (10.000 fps)
                Interval: Discrete 0.200s (5.000 fps)

    ………………(此处省略index 0的其他分辨率)………………

    Index       : 1
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
            Size: Discrete 3840x2160
                Interval: Discrete 1.000s (1.000 fps)
            Size: Discrete 2592x1944
                Interval: Discrete 1.000s (1.000 fps)
            Size: Discrete 2048x1536
                Interval: Discrete 0.333s (3.000 fps)
            Size: Discrete 1600x1200
                Interval: Discrete 0.200s (5.000 fps)

    ……………………………………………………………………

    由于一开始没仔细看这里的信息,导致我走了很多弯路。

    这样的输出说明我的摄像头有两种输出形式,一种是MJPG,另一种是YUYV 422,也就是说后面用工具获取视频流的时候是需要指定用哪种数据的。刚才我也提到,我直接用cheese打开摄像头,得到的画面特别卡,后面才想到其实是进入了YUYV 422,3840x2160,1FPS的默认模式。

    二、用ffmpeg获取视频

    ffmpeg是一种多媒体框架,可以编码、解码各种格式的视频,音频。我们可以用命令行的方式简单地调用ffmpeg工具进行验证。

    # 安装ffmpeg
    sudo apt-get install ffmpeg
    
    # ffmpeg视频采集
    ffmpeg -f v4l2 -s 1920x1080 -r 30 -vcodec mjpeg -i /dev/video0 -b:v 8000k -an videocap.avi
    
    # 更多参数
    ffmpeg -f v4l2 -s 1920x1080 -r 30 -vcodec mjpeg -i /dev/video0 -pix_fmt yuv420p -b:v 2000k -vcodec libx264 -preset veryfast -an videocap1.mp4

    参数解释
    -f 输出格式
    -s 分辨率
    -r 帧率
    -vcodec 编码方式
    -i 数据输入流
    -b:v 视频码率 默认1000k
    -an 不处理音频
    最后加上输出文件名

    -pix_fmt 像素格式,可选yuv420p,yuvj422p,mjpeg等
    -b:a 是音频码率 这里我们没有音频
    -vcodec libx264 转为H264编码
    -preset 处理模式  用时间换质量,可选ultrafast, superfast, veryfast, faster, fast, medium等等

    这里主要需要考虑的参数是,-b:v 视频码率,它和分辨率有关,分辨率高而码率过低,视频质量也会很差,分辨率1920x1080的话码率至少要8000k,蓝光是20000k

    三、用gstreamer获取视频

    gstreamer也是一个多媒体框架,也是自带各种多媒体编解码模块。gstreamer的每个模块相对比较独立,就像一个工具箱里有各种零件,针对不同任务要拿不同的零件拼起来。但是感觉对初学者比较不友好,刚上手的时候既不知道一个完整的管线应该包含那些零件,也不知道工具箱提供了哪些零件,叫什么名字。网上没法直接查到的时候就只能去啃gstreamer插件文档。gst的两个命令行工具是gst-launch和gst-inspect,前者和ffmpeg一样执行命令,后者是一个帮助手册。

    gstreamer官方文档里找到安装方法,这里需注意如果你ubuntu里装了anaconda,anaconda的虚拟环境里又已经存在gstreamer,则有可能会出现冲突。详见gstreamer 无组件问题修复

    # 安装gstreamer
    sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
    
    # 用最简单的命令测试摄像头
    gst-launch-1.0 v4l2src ! autovideosink

    这里能打开画面即为成功,和cheese显示的画面一样,这里用的是默认参数。对我的摄像头来说也就是YUYV422,3840x2160,1fps。

    我们可以通过构建管线,控制程序读YUYV数据或者MJPG数据。

    # 使用YUYV格式视频流
    gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2,width=800,height=600,framerate=15/1 ! videorate ! videoscale ! videoconvert ! xvimagesink
    
    # 使用MJPG格式视频流
    gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1920,hight=1080,videorate=30/1 ! jpegdec ! xvimagesink
    
    # 分辨率、帧率必须选择摄像头支持的参数,前面也提到了,用此命令查询
    sudo v4l2-ctl --all --list-formats-ext
    

    这里我探索很久才成功打开MJPG格式的视频流,主要就是因为一开始没有认真看 sudo v4l2-ctl --all --list-formats-ext 输出的结果,先是没意识到摄像头有两个数据通道,一直在用YUYV那个通道,还纳闷怎么取不到3840x2160  30fps,以为被商家骗了。后来意识到了应该用第二个通道,又把mjpg看成了mpeg,一直在gstreamer文档里面查找mpeg相关插件。

    学艺不精,居然把mjpg和mpeg搞混。这里记录一下mjpg和mpeg的区别,mjpg是指这个视频流中每一帧都被压缩成jpeg格式,相邻帧之间是独立压缩的,对这个视频流解码的时候自然是要找jpeg解码器,进行逐帧解码。而mpeg是一个视频有损压缩编码标准,在压缩时是考虑了时间冗余的,也就是单位时间内完整保存第一帧信息,然后就只存储其余帧相对第一帧发生变化的部分。mpeg-4标准是我们现在常用的视频有损压缩编码标准,但mpeg-4和.mp4文件并没有严格的对应关系。虽然.mp4文件格式规范一开始是为mpeg-4设计的,但由于它过于好用,所以后来出现各种扩展,不仅mpeg-4,h.264、h.263的视频轨也可以往.mp4文件里存。

    参考:Linux USB摄像头使用

    展开全文
  • 此处我只说用uvc通用驱动查询摄像头是否是UVC设备,参见官网1 找到CAMERA ID2 lsusb -d VID:PID -v | grep “14 Video”如果输出有下面信息说明支持bFunctionClass 14 VideobInterfaceClass 14 VideobInterfaceClass...

    此处我只说用uvc通用驱动

    查询摄像头是否是UVC设备,参见官网

    1 找到CAMERA ID

    2 lsusb -d VID:PID -v | grep “14 Video”

    如果输出有下面信息说明支持

    bFunctionClass 14 Video

    bInterfaceClass 14 Video

    bInterfaceClass 14 Video

    bInterfaceClass 14 Video

    lsusb -d VID:PID -v 可以列出了一个usb设备的有所信息,接口,更详细的树形图lsusb -t

    UVC驱动代码详解

    详情请看此系列博文

    我要说的一点就是该驱动的可能限制,在写应用程序时就要注意到。

    uvc_driver.c里头一段话就说了驱动的限制:

    This driver aims to support video input and ouput devices compliant with the ‘USB Video Class’ specification.

    The driver doesn’t support the deprecated v4l1 interface. It implements the mmap capture method only, and doesn’t do any image format conversion in software. If your user-space application doesn’t support YUYV or MJPEG, fix it :-). Please note that the MJPEG data have been stripped from their Huffman tables (DHT marker), you will need to add it back if your JPEG codec can’t handle MJPEG data.

    从中看出以下几点:

    1 只支持mmap方式 ,不支持read,usrptr什么的。所以v4l2里说的用户获取摄像头数据的方式有三种在这个驱动里那是没有的,到底支不支持你要看看你自己的内核里面的驱动说明了。

    2 不再支持v4l1接口

    3 不做任何图像格式转换,只输出YUYV或MJPEG(?)

    4 MJPEG 格式的data没有Huffman tables,所以如果要做格式转换需要自己加入Huffman tables才行。

    明明是UVC摄像头,但不是不支持怎么办?

    更新驱动文件吧,下载下来的内核里的uvc驱动并不是最新的,现在摄像头做的快,肯定是跟不上的,也可以自己改,一般在 static struct usb_device_id uvc_ids[]这个结构里增加你的摄像头型号就好了:

    比如我的摄像头是0ac8:3420,就不支持,那么在drivers/media/video/uvc/uvc_driver.c的uvd_ids中增加如下就行。

    { .match_flags = USB_DEVICE_ID_MATCH_DEVICE

    | USB_DEVICE_ID_MATCH_INT_INFO,

    .idVendor = 0x0ac8,

    .idProduct = 0x3420,

    .bInterfaceClass = USB_CLASS_VIDEO,

    .bInterfaceSubClass = 1,

    .bInterfaceProtocol = 0,

    .driver_info = UVC_QUIRK_FIX_BANDWIDTH },

    心得

    在编译uvc驱动的内核时,最好将它们以模块的方式编译内核,并勾选上自动加载(Automatic kernel module loading),新版内核如果选择了加载模块就默认了似乎,因为我也没找到这选项。一插上摄像头,uvc相关模块就自动加载了。如下:

    # lsmod

    Module Size Used by Not tainted

    uvcvideo 64611 0

    videobuf2_core 21211 1 uvcvideo

    videodev 85103 2 uvcvideo,videobuf2_core

    videobuf2_vmalloc 2119 1 uvcvideo

    videobuf2_memops 1550 1 videobuf2_vmalloc

    leds_s3c24xx 1193 0

    led_class 2321 1 leds_s3c24xx

    evbug 1594 0

    #

    和linux中加载模块有关的几个命令分别如下:

    depmod, modprobe, lsmod,insmod

    depmod:在busybox

    这样如果有驱动不行,还可以修改编译后再试。

    展开全文
  • Linux USB摄像头使用

    2021-05-09 07:02:21
    一、使用V4l2工具调试摄像头1.v4l2-ctl 常用操作# 安装V4l2工具包$ sudo apt install v4l-utils# 通过v4l2查看摄像头设备$ sudo v4l2-ctl --list-devicesEP28WD (usb-fe380000.usb-1.3):/dev/video0/dev/video1# ...

    一、使用V4l2工具调试摄像头

    1.v4l2-ctl 常用操作

    # 安装V4l2工具包

    $ sudo apt install v4l-utils

    # 通过v4l2查看摄像头设备

    $ sudo v4l2-ctl --list-devices

    EP28WD (usb-fe380000.usb-1.3):

    /dev/video0

    /dev/video1

    # 查看当前摄像头支持的视频压缩格式

    $ sudo v4l2-ctl -d /dev/video0 --list-formats

    ioctl: VIDIOC_ENUM_FMT

    Index : 0

    Type : Video Capture

    Pixel Format: 'YUYV'

    Name : YUYV 4:2:2

    Index : 1

    Type : Video Capture

    Pixel Format: 'H264' (compressed)

    Name : H.264

    Index : 2

    Type : Video Capture

    Pixel Format: 'MJPG' (compressed)

    Name : Motion-JPEG

    # 查看摄像头所有参数

    $ sudo v4l2-ctl -d /dev/video0 --all

    Driver Info (not using libv4l2):

    Driver name : uvcvideo

    Card type : EP28WD

    Bus info : usb-fe380000.usb-1.3

    Driver version: 4.4.167

    Capabilities : 0x84A00001

    Video Capture

    Streaming

    Extended Pix Format

    Device Capabilities

    Device Caps : 0x04200001

    Video Capture

    Streaming

    Extended Pix Format

    Priority: 2

    Video input : 0 (Camera 1: ok)

    Format Video Capture:

    Width/Height : 640/480

    Pixel Format : 'YUYV'

    Field : None

    Bytes per Line : 1280

    Size Image : 614400

    Colorspace : Default

    Transfer Function : Default

    YCbCr Encoding : Default

    Quantization : Default

    Flags :

    Crop Capability Video Capture:

    Bounds : Left 0, Top 0, Width 640, Height 480

    Default : Left 0, Top 0, Width 640, Height 480

    Pixel Aspect: 1/1

    Selection: crop_default, Left 0, Top 0, Width 640, Height 480

    Selection: crop_bounds, Left 0, Top 0, Width 640, Height 480

    Streaming Parameters Video Capture:

    Capabilities : timeperframe

    Frames per second: 25.000 (25/1)

    Read buffers : 0

    brightness (int) : min=-64 max=64 step=1 default=0 value=0

    contrast (int) : min=0 max=64 step=1 default=36 value=36

    saturation (int) : min=0 max=128 step=1 default=64 value=64

    hue (int) : min=-40 max=40 step=1 default=0 value=0

    white_balance_temperature_auto (bool) : default=1 value=1

    gamma (int) : min=72 max=500 step=1 default=100 value=100

    gain (int) : min=0 max=100 step=1 default=0 value=0

    power_line_frequency (menu) : min=0 max=2 default=1 value=1

    white_balance_temperature (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive

    sharpness (int) : min=0 max=6 step=1 default=3 value=3

    backlight_compensation (int) : min=0 max=2 step=1 default=1 value=1

    exposure_auto (menu) : min=0 max=3 default=3 value=3

    exposure_absolute (int) : min=1 max=5000 step=1 default=157 value=157 flags=inactive

    exposure_auto_priority (bool) : default=0 value=1

    # 查看摄像头所支持的分辨率

    sudo v4l2-ctl --list-framesizes=MJPG -d /dev/video0

    ioctl: VIDIOC_ENUM_FRAMESIZES

    Size: Discrete 640x480 # Width/Height

    Size: Discrete 800x600

    Size: Discrete 1280x720

    Size: Discrete 1280x960

    Size: Discrete 1920x1080

    Size: Discrete 1600x1200

    Size: Discrete 2048x1536

    Size: Discrete 2592x1944

    Size: Discrete 3264x2448

    2.v4l2-ctl 命令

    $ v4l2-ctl help

    unknown arguments: help

    General/Common options:

    --all display all information available

    -C, --get-ctrl=[,...]

    get the value of the controls [VIDIOC_G_EXT_CTRLS]

    -c, --set-ctrl==[,=...]

    set the value of the controls [VIDIOC_S_EXT_CTRLS]

    -D, --info show driver info [VIDIOC_QUERYCAP]

    -d, --device= use device instead of /dev/video0

    if starts with a digit, then /dev/video is used

    -e, --out-device= use device for output streams instead of the

    default device as set with --device

    if starts with a digit, then /dev/video is used

    -h, --help display this help message

    --help-all all options

    --help-io input/output options

    --help-misc miscellaneous options

    --help-overlay overlay format options

    --help-sdr SDR format options

    --help-selection crop/selection options

    --help-stds standards and other video timings options

    --help-streaming streaming options

    --help-tuner tuner/modulator options

    --help-vbi VBI format options

    --help-vidcap video capture format options

    --help-vidout vidout output format options

    --help-edid edid handling options

    -k, --concise be more concise if possible.

    -l, --list-ctrls display all controls and their values [VIDIOC_QUERYCTRL]

    -L, --list-ctrls-menus

    display all controls and their menus [VIDIOC_QUERYMENU]

    -r, --subset=[,,]+

    the subset of the N-dimensional array to get/set for control ,

    for every dimension an (, ) tuple is given.

    -w, --wrapper use the libv4l2 wrapper library.

    --list-devices list all v4l devices

    --log-status log the board status in the kernel log [VIDIOC_LOG_STATUS]

    --get-priority query the current access priority [VIDIOC_G_PRIORITY]

    --set-priority=

    set the new access priority [VIDIOC_S_PRIORITY]

    is 1 (background), 2 (interactive) or 3 (record)

    --silent only set the result code, do not print any messages

    --sleep= sleep , call QUERYCAP and close the file handle

    --verbose turn on verbose ioctl status reporting

    3.usb摄像头与video匹配

    linux系统接上usb摄像头会出现/dev/video*设备,如果接多个摄像头,通过/dev/video*无法与真实摄像头一一对应。由于有的时候一个usb摄像头会产生两个或多个video(只有一个能拍照),所以通过udev的rule规则也无法固定。这时可以通过/dev/v4l/by-id/路径的软链接固定。

    $ ll /dev/v4l/by-id/

    lrwxrwxrwx 1 root root 12 Sep 10 14:32 usb-Generic_HDR_CAMERA_200901010001-video-index0 -> ../../video0

    lrwxrwxrwx 1 root root 12 Sep 10 14:32 usb-Generic_HDR_CAMERA_200901010001-video-index1 -> ../../video1

    lrwxrwxrwx 1 root root 12 Sep 10 14:24 usb-USB3.0_Camera_8M_USB3.0_Camera_8M_SITN00000000001-video-index0 -> ../../video2

    lrwxrwxrwx 1 root root 12 Sep 10 14:24 usb-USB3.0_Camera_8M_USB3.0_Camera_8M_SITN00000000001-video-index1 -> ../../video3

    二、安装应用程序显示摄像头捕捉到的视频

    1.使用应用程序camorama

    sudo apt-get install camorama

    camorama

    #如果使用Xshell进行ssh远程访问,会提醒安装Xmanager软件显示视频流

    Xmanager是一个运行于MS Windows平台上的高性能的X window服务器。可以在本地PC上同时运行Unix/Linux和Windows图形应用程序。

    Xmanager可以将PC变成X Windows工作站,它可以无缝拼接到UNIX 应用程序中。在UNIX/Linux和Windows网络环境中,Xmanager 是最好的连通解决方案。

    20d4b81f8d14

    2.使用应用程序茄子(cheese)

    cheese是Ubuntu自带摄像软件,中文名称茄子。

    cheese + 设备号

    sudo apt-get install cheese

    cheese

    # 或

    cheese /dev/video0

    #不支持ssh远程显示

    三、ffmpeg获取摄像头图像

    sudo apt-get install ffmpeg

    sudo ffmpeg -i /dev/video0 -vframes 1 -s 640x480 -q:v 2 -f image2 /tmp/image6-vdieo0-test1.jpg

    对海康IP摄像头进行拍照、推流和保存视频

    sudo ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.19:554/mpeg4 \ # base

    -vcodec copy -an -f flv rtmp://172.17.0.1/live/camera0 \ # stream

    -flags +global_header -f stream_segment -segment_time 60 -segment_format_options movflags=+faststart -reset_timestamps 1 -vcodec copy -q:v 4 -an -r 24 -strftime 1 /data/tmpfs/camera/video/%s.flv \ # video

    -r 2/1 -strftime 1 -y /data/tmpfs/camera/capture.jpg # capture

    # 从ip摄像头推流

    sudo ffmpeg -rtsp_transport tcp -i rtsp://admin:jiangxing123@10.56.0.17:554/h264/ch1/sub/av_stream -vcodec copy -an -f flv rtmp://10.55.2.185:1935/live/camera0

    # 从视频文件推流

    sudo ffmpeg -re -i record.flv -vcodec copy -an -f flv rtmp://10.55.2.185:1935/live/camera0

    # 从usb摄像头推流

    sudo ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f flv rtmp://10.55.2.185:1935/live/camera0

    # ==============test==============

    sudo ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.19:554/mpeg4 -f flv -c:v libx264 -an rtmp://10.55.2.185:1935/live/camera0

    sudo ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.19:554/mpeg4 -vcodec copy -an -f flv rtmp://10.55.2.185:1935/live/camera0

    sudo ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.19:554/mpeg4 -vcodec libx264 -crf 5 -acodec aac -f flv rtmp://10.55.2.185:1935/live/camera0

    sudo ffmpeg -rtsp_transport tcp -i rtsp://192.168.1.19:554/mpeg4 -vcodec libx264 -acodec aac -f flv rtmp://10.55.2.185:1935/live/camera0

    四、gstreamer获取摄像头图像

    # install gstreamer

    apt-get -y install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

    # 连续拍照

    gst-launch-1.0 --gst-debug-level=3 v4l2src device=/dev/video0 ! \

    image/jpeg,width=1920,height=1080,framerate=30/1 ! \

    multifilesink location=/data/tmpfs/capture1.jpg max-files=1 post-messages=true

    # 单次拍照

    gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! image/jpeg,width=1920,height=1080 ! filesink location=/data/tmpfs/capture2.jpg

    对海康IP摄像头进行拍照、推流和保存视频

    gst-launch-1.0 -e --gst-debug-level=3 rtspsrc location=rtsp://192.168.1.19:554/mpeg4 ! rtph264depay ! h264parse ! tee name=t \

    t. ! queue ! avdec_h264 ! queue flush-on-eos=true ! videorate ! video/x-raw,framerate=5/1 ! jpegenc ! multifilesink post-messages=true location=/data/tmpfs/camera/capture.jpg max-files=1 \ # capture

    t. ! queue ! flvmux streamable=true ! rtmpsink sync=false location=rtmp://172.17.0.1/live/camera0 \ # stream

    t. ! queue ! splitmuxsink max-size-time=600000000000 location=/data/tmpfs/camera/video/%06d.mp4 # video

    五、图片加上文字

    sudo apt-get install imagemagick

    # 左下角

    convert /data/tmpfs/capture.jpg -gravity SouthWest -pointsize 40 \

    -stroke none -fill white -annotate +5+5 "`date "+%Y-%m-%d %H:%M:%S"`" \

    -stroke none -fill white -annotate +5+70 "$text" /data/tmpfs/output.jpg

    # 左上角

    convert /data/tmpfs/capture.jpg -gravity NorthWest -pointsize 40 \

    -stroke none -fill white -annotate +5+5 "`date "+%Y-%m-%d %H:%M:%S"`" \

    -stroke '#40DCD7' -fill white -annotate +5+70 "$text" /data/tmpfs/output.jpg

    # 有阴影的文字

    convert /data/tmpfs/capture.jpg \

    \( -background 'rgba(0, 0, 0, .5)' -fill white \

    -font Helvetica -pointsize 60 \

    label:"`date "+%Y-%m-%d %H:%M:%S"` " -splice 20x20 \

    \) -gravity NorthWest -geometry +40+40 \

    -composite /data/tmpfs/output2.jpg

    # 使用中文字体

    text="Hello"

    text2="D10.08"

    # font对应中文字体路径

    convert /data/tmpfs/capture.jpg -font /usr/share/fonts/truetype/wqy/wqy-microhei.ttc -gravity NorthWest -pointsize 60 \

    -stroke none -fill white -annotate +40+40 "`date "+%Y-%m-%d %H:%M:%S"`" \

    -gravity NorthEast -pointsize 60 \

    -stroke none -fill white -annotate +40+40 "$text2" \

    -gravity SouthEast -pointsize 60 \

    -stroke none -fill white -annotate +40+40 "$text" /data/tmpfs/output.jpg

    图片方位

    NorthWest、North、NorthEast、West、Center、East、SouthWest、South、SouthEast。

    安装中文字体

    sudo apt install -y --force-yes --no-install-recommends fonts-wqy-microhei

    sudo apt install -y --force-yes --no-install-recommends ttf-wqy-zenhei

    # 查看中文字体路径

    $ fc-list :lang=zh-cn

    /usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei,文泉驛微米黑,文泉驿微米黑:style=Regular

    /usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Regular

    展开全文
  • win10系统外接usb摄像头怎么打开

    千次阅读 2021-01-17 13:30:56
    下面就一起来了解一下Win10外接usb摄像头的打开方法吧。win10系统外接usb摄像头怎么打开1、首先查看一下相机权限有没有开启。“win+i”快捷键打开设置窗口,这时候我们就可以看到隐私下方的相机了,点击它。2、左侧...
  • ffserver在ffmpeg4.0后就不一起安装了,无法使用 安装 ffserver 安装ffmpeg sudo apt install ffmpeg libx264-dev 修改配置文件 sudo gedit /etc/ffserver.conf 修改内容 ...HTTPBindAddress 0.0.0.0 #绑定IP ...
  • 文章目录前言MJPG-streamer的安装usb摄像头web摄像头图像查看mjpg_stream help参数解释输入输出homeassistant使用其他ffmpeg使用usb摄像头homeassistant学习链接 前言 在homeassistant中使用ffmpeg集成来使用usb...
  • 本文是整理内容方便自己使用,原文: 1、https://blog.csdn.net/qq_36798753/article/details/78082006 2、https://blog.csdn.net/wto882dim/article/details/82195001 第一步:下载源码 wget ...
  • USB摄像头app

    2021-06-05 05:32:23
    软件介绍USB摄像头可以让你的Android设备通过USB-OTG接口连接USB摄像头或视频采集卡,支持录像或者拍照,甚至通过内置RTSP和HTTP服务器变成包含双向音频支持的无线IP摄像头并用于安全监控,你可以使用浏览器查看,...
  • 英伟达 Jetson Nano 新手必备:使用CSI或USB摄像头拍摄第一张照片1. 引言1.1 支持的摄像头1.2 nvgstcapture2. 在屏幕上开始捕获和预览显示2.1 CSI摄像机2.2 USB摄像头3. 拍照并保存到磁盘3.1 CSI摄像机3.2 USB摄像头...
  • 树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头问题描述:在树莓派上使用多个USB摄像头时,如何确定各个摄像头所对应的id?比如,当有两个摄像头时...
  • Android USB摄像头插拔监听

    千次阅读 2021-09-05 17:47:24
    Android USB摄像头插拔监听一、简要介绍二、使用广播监听USB摄像头插拔情况1、注册监听USB设备插拔...部分Android开发设备可以插入USB摄像头使用,刚好工作用到了,本文将对USBCamera拔插监听进行总结记录。 一、简要介
  • Android 驱动USB摄像头

    2021-05-26 19:07:43
    最近有个需求,要用android 来驱动外部usb摄像头。emmmmmmm...... 港真,突然听到这么个需求,有点蒙~~于是google github转有没有类似需求的文章。诶嘿 还真有。 还有开源的项目。项目地址:传送门。事前要检测摄像头...
  • Delphi USB摄像头

    2021-01-18 16:32:44
    { 视频预览 } /// /// 视频预览【USB视频预览】 /// /// FI图形生成器 /// FI捕获图生成器2 /// FSys开发枚举【mBaseFilter】 /// FI视频窗口 /// FI媒体控制 /// FI样品采集器 /// P视频输入信息(USB摄像头....
  • linux利用USB摄像头

    2021-05-11 09:50:00
    www.linuxsir.org/main/node/221?q=node/221上述帖子是关于摄像头(WebCam)在Linux...在新的linux内核里面有大局部usb摄像头的驱动。因而能够直接从内核里面抉择驱动。率先得确定你的摄像头型号:$ lshal | grep Webc...
  • 终于轮到摄像头了,IMX6ULL支持USB摄像头,直接插在USB口上就可以了,不过,下面介绍的方案要在Python中调用USB摄像头的数据,所以在IMX6ULL中需要移植MJPG_Streamer,这个不太难,百度一下就OK,迅为的方案就可以,...
  • 在rk3399proD开发板上使用usb摄像头

    千次阅读 2021-12-02 11:46:06
    对于rk3399proD来说,并不是所有的usb摄像头都适用。我在试了好几款后,找到了一款能用的,罗技C270,之前问官方好像是说罗技的都行。 接下来开始介绍具体的使用方法: ①: 将usb摄像头连在开发板上,然后查看摄像头...
  • 但是对我们的USB摄像头来说宽带还是够了,这次教程我们牛人技术为大家介绍如何使用手上的USB摄像头来连接树莓派制作监控。USB摄像头选择首先我推荐大家使用能被LINUX系统直接免驱兼容的UVC的USB摄像头,这里我们使用...
  • JCam2 v1.6.0 USB摄像头工具全新发布及使用详解 简介 JCam2 v1.6.0 全新架构全新发布,性能、功能、稳定性均有重大提升。 JCam 是一款USB摄像头工具,轻量级设计,界面简单而不失专业,装逼灰的配色强烈地表达了...
  • 因为香橙派Zero本身只有1个USB接口,考虑到还要外接其他USB设备(例如键盘鼠标),所以可以配合扩展板,插在主板的13pin接口上,扩展2个USB接口,启动系统后,再把USB摄像头插入到扩展的USB接口中: USB...
  • USB相机驱动程序和相机选择可能存在问题,而不是权限问题.> USB相机驱动程序第一步是确保您的USB摄像头被检测到并且正在您的设备上运行....在我使用Android 8.1.0的测试中,我附带的USB摄像头没有使用Camer...
  • TX2开发套件自带一个板载摄像头,也支持外接USB摄像头或者CSI相机。 当连接了USB摄像头后,我们首先输入: lsusb
  • 偶尔会出现无法使用 USB 摄像头的情况,自带的摄像头操作命令 raspistill、raspivid 也无法使用。而 fswebcam 这是一款小型摄像头程序(官网),则可以很好地支持 USB 摄像头使用方法也很简便。安装 fswebcam安装 ...
  • 我用的命令是ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf运行的结果是FFmpeg version SVN-r16967, Copyright (c) 2000-2009 Fabrice Bellard, et al.configuration: --enable-pthreads --...
  • 在实际项目中,有些客户可能需要支持usb摄像头功能,如果你也遇到usb摄像头支持的问题,那这篇文章一定能帮助到你。目前android是支持uvc协议的,也就是只要我们采用的usb摄像头是支持uvc协议的,那就可以在android...
  • 本文实例为大家分享了python OpenCV来表示USB摄像头画面的具体代码,供大家参考,具体内容如下确认Python版本$ pythonPython 2.7.13 (default, Jan 19 2019, 14:48:08)[GCC 6.3.0 20170124] on Linux2Type "help", ...
  • 1、查看usb接口使用,找到你的设备 lsusb ls /dev/video* 2、安装驱动 sudoapt-get installfswebcam 3、使用默认摄像头拍照,默认使用video0 fswebcam --no-banner -r 640*480 camera.jpg 4、指定...
  • 硬件平台:PC机一台 、usb摄像头操作系统:Linux3.0.8交叉编译环境:arm-none-Linux-gnueabi-gcc 4.5.1调试步骤:一、linux 内核解压1.1使用linux-3.0.8-FS210_v8.tar.xz内核,将这个内核压缩包拷贝到虚拟机的linux...
  • USB摄像头以其良好的性能和低廉的价格得到广泛应用。同时因其灵活、方便的特性,易于集成到嵌入式系统中。但是如果使用现有的符合Video for Linux标准的驱动程序配合通用应用程序,难以充分利用USB带宽,帧速不高,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,241
精华内容 12,896
关键字:

usb摄像头如何使用