【问题标题】:Linux as a USB UVC deviceLinux 作为 USB UVC 设备
【发布时间】:2017-08-07 06:57:03
【问题描述】:

使 Linux 设备 (Raspberry Pi) 在另一台计算机上的行为类似于 UVC 设备需要什么?本质上,我想使用 ffmpeg 的输出来表现得像另一台计算机的网络摄像头输入。

【问题讨论】:

    标签: linux ffmpeg usb uvc


    【解决方案1】:

    要使 Linux 设备 (Raspberry Pi) 像另一台计算机的 UVC 设备一样工作,需要什么?

    这实际上可以在没有自定义内核的 Pi Zero 上完成。在 config.txt 中设置 dtoverlay=dwc2 以获得 OTG 支持后,重新启动并运行:

    sudo modprobe g_webcam
    ./uvc-gadget -d
    

    这些是通过流式传输合成数据使您的 Pi 充当网络摄像头的第一步,您可以在 Skype、FaceTime 或其他网络摄像头查看器中进行测试。 Here 是 uvc-gadget 用户空间程序及其常用推荐补丁的源代码。

    基本上,我想使用 ffmpeg 的输出来表现得像另一台计算机的网络摄像头输入。

    这部分可能涉及更多。现有的 uvc-gadget 程序据说可以播放通过 GStreamer 捕获的网络摄像头记录,更多讨论请参见 this post。对于 FFmpeg 的任意输入,您可能需要将您自己的输出插件代码与 uvc-gadget 集成。

    如果您使用压缩:请注意 FFmpeg 已经可以输出各种容器格式的 mjpeg,但该数据仍需要转换为 UVC 有效负载 mjpeg 格式。

    【讨论】:

      【解决方案2】:

      您大概需要一个支持 USB OTG 的 RPi,而 RPi 3 则没有。 然后,您将需要一个模拟真实设备的 UVC 驱动程序的自定义内核驱动程序,我不知道有任何项目直接执行此操作。

      我能想到的最简单的方法是通过 RTMP 流式传输录制的图像,而不是尝试模拟 UVC,因为这不是一个小壮举。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-21
        • 1970-01-01
        • 2011-07-02
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 2017-01-10
        相关资源
        最近更新 更多