使Linux设备(Raspberry Pi)像另一台计算机的UVC设备一样需要什么?本质上,我想使用ffmpeg的输出来表现类似另一台计算机的网络摄像头输入。
最佳答案
实际上,这可以在没有自定义内核的Pi Zero上完成。在config.txt中为OTG支持设置dtoverlay=dwc2
后,重新启动并运行:
sudo modprobe g_webcam
./uvc-gadget -d
这些是通过流式传输合成数据使Pi充当网络摄像头的第一步,您可以在Skype,FaceTime或其他网络摄像头查看器中进行测试。 Here是uvc-gadget用户空间程序的源代码,并带有常用的修补程序。
这部分可能会涉及更多。现有的uvc-gadget程序可以播放GStreamer捕获的网络摄像头录像,有关更多讨论,请参见this post。对于向FFmpeg的任意输入,您可能必须将自己的输出插件代码与uvc-gadget集成在一起。
如果您尽可能使用压缩:请注意FFmpeg已经可以以各种容器格式输出mjpeg,但是仍然必须将数据转换为UVC有效负载mjpeg格式。
关于Linux作为USB UVC设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42828356/