【问题标题】:Fake directory containing png informations包含 png 信息的假目录
【发布时间】:2012-11-15 10:54:09
【问题描述】:

众所周知,我们可以将/dev/video0 作为接收网络摄像头输出的目录。

是否可以通过C 程序创建一个虚假的/dev/something 目录,并在其中不断输出一些创建的png 文件的内容以创建fake webcam 等?

然后,我将为其他应用程序读取 live 流。

谢谢。

【问题讨论】:

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

标签: c unix directory


【解决方案1】:

如果您只需要文件系统中某个应用程序可以读取某些特定数据的位置,请使用mkfifo 创建它。

然后,您可以编写一个生产者,以任何比特率写入您需要的任何内容,并让消费者从中读取。如果您输出消费者期望的内容,您可能会获得类似于伪造数据“实时流”的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多