【发布时间】:2012-11-15 10:54:09
【问题描述】:
众所周知,我们可以将/dev/video0 作为接收网络摄像头输出的目录。
是否可以通过C 程序创建一个虚假的/dev/something 目录,并在其中不断输出一些创建的png 文件的内容以创建fake webcam 等?
然后,我将为其他应用程序读取 live 流。
谢谢。
【问题讨论】:
-
视情况而定;它不像将解码的 png 文件转储到文件中那么简单。如果你想让它充当一个假的网络摄像头,你可能最终会编写一个设备驱动程序来回答 ioctls 之类的。从好的方面来说,您不必处理实际硬件,因此它比常规设备驱动程序要简单得多。
-
如果我只想将所有内容转储到一个文件中然后读取所有内容,或者只是
cat内容?这可能吗? -
如果你的“其他应用程序”足够笨,它只是读取帧数据,也许。如果它试图在阅读之前配置/启动一个真正的网络摄像头,不要这么认为。此外,来自网络摄像头的流可能是原始 YUV,或者充其量是使用某些电影相关编解码器预压缩的东西,而不是 png。我已经很久没有接触过video4linux了,所以恐怕我不能比这更具体了。希望最近有经验的人能过来解释一下。
-
只是为了弄清楚细节:
/dev/video0不是一个目录,它是一个设备节点。这是文件系统中的一个特殊实体,预计将处理@Torp 提到的特定操作。