【发布时间】:2017-08-07 06:57:03
【问题描述】:
使 Linux 设备 (Raspberry Pi) 在另一台计算机上的行为类似于 UVC 设备需要什么?本质上,我想使用 ffmpeg 的输出来表现得像另一台计算机的网络摄像头输入。
【问题讨论】:
使 Linux 设备 (Raspberry Pi) 在另一台计算机上的行为类似于 UVC 设备需要什么?本质上,我想使用 ffmpeg 的输出来表现得像另一台计算机的网络摄像头输入。
【问题讨论】:
要使 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 格式。
【讨论】:
您大概需要一个支持 USB OTG 的 RPi,而 RPi 3 则没有。 然后,您将需要一个模拟真实设备的 UVC 驱动程序的自定义内核驱动程序,我不知道有任何项目直接执行此操作。
我能想到的最简单的方法是通过 RTMP 流式传输录制的图像,而不是尝试模拟 UVC,因为这不是一个小壮举。
【讨论】: