我们需要在 Linux 上轻松捕获实时视频并显示。我们需要具有简单 API 的廉价卡或 USB 设备。有人想分享一些经验吗?
8 回答
使用video4linux库。我已经将它与 c++ 程序一起使用,并且能够在大约一个小时内捕获网络摄像头帧。(非常易于使用和设置)
如果你需要编程,你最好使用GStreamer,这是一个 Linux 下的多媒体框架。
Jackbravo 提到的 Cheese 是基于 GStreamer 的,我工作的流媒体服务器Flumotion也是如此。
如前所述,使用 dvgrab 从相机的 Firewire 接口捕获,然后根据需要使用 ffmpeg(命令行)或 kino(简单 gui 视频编辑器)等工具处理视频。基于 PCI 的 Firewire 卡相对便宜且容易找到。
这里有些例子:
从火线连续捕获,每隔几分钟自动分割
dvgrab --size 500 --autosplit <filename>
看摄像机直播
dvgrab - | mplayer -
请注意,一些最近的发行版(例如 Fedora8)正在使用新的但不成熟的火线驱动程序。但是,Ubuntu 运行良好。
那里有“密封”相机解决方案,背面带有迷你网络服务器和以太网端口。只需将其插入网络,设置其 IP,然后打开浏览器……在 linux 或任何地方
如果你想在 linux 中捕捉,我曾经有一个便宜的网络摄像头在 perl 脚本中捕捉单帧,它可以被实时修改——尽管那是大约 10 年前的事了。无论如何,它是可能的:-/
有奶酪侏儒应用程序。使用起来真的很简单。没有太多功能,只是视频捕获。
openCV 将允许您从相机捕获单个帧并保存到磁盘。如果您需要随后操作这些来创建视频,我建议您使用 netpbm,这是一套非常强大的命令行工具,您可以使用一些 shell 脚本来制作视频或做任何您需要的事情。
另一种选择是使用 Firewire (IEEE1394) 摄像机,例如最常见的 DV 摄像机。它们往往工作得非常好,并且提供比廉价网络摄像头更好的视频,并且 Linux 中有大量用于处理 dv 视频的工具,例如dvgrab。
如果您使用 java,v4l4j 使得从任何 V4L 设备捕获帧变得非常简单。它还允许您从 java 控制设备。我将它与 PTZ 网络摄像头(罗技 quickam orbit)一起使用,我可以控制亮度、饱和度和自动白平衡等常用参数,还可以控制相机的倾斜和平移。非常便利 !