使Linux设备(Raspberry Pi)的行为类似于另一台计算机的UVC设备需要什么?基本上,我想使用ffmpeg的输出来表现得像另一台计算机的网络摄像头输入。
答案 0 :(得分: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格式。
答案 1 :(得分:0)
你将大致需要一个支持USB OTG的RPi,RPi 3无法做到这一点。 然后你需要一个模拟真实设备的UVC驱动程序的自定义内核驱动程序,我不知道任何直接执行此操作的项目。
我能想到的最简单的方法是通过RTMP流式传输录制的图像,而不是尝试模拟UVC,因为这不是一个小小的壮举。