Linux上的视频捕获?
我们需要捕获实时视频并在Linux上轻松显示。我们需要带有简单API的廉价卡或者USB设备。任何人都想分享一些经验吗?
解决方案
回答
使用video4linux库。我已经将其与c ++程序一起使用,并且能够在大约一个小时内捕获网络摄像头帧。 (非常易于使用和设置)
回答
有奶酪gnome应用程序。使用起来真的很简单。没有太多功能,只是视频捕获。
回答
那里有"密封的"摄像机解决方案,在其背面有微型Web服务器和一个以太网端口。只需将其插入网络,设置其IP,然后在Linux或者其他任何地方打开浏览器...
如果我们想在Linux中进行捕获,我曾经有一个便宜的网络摄像头,可以在perl脚本中捕获单个帧,尽管大约10年前就可以进行实时修改。无论如何,它可能是:-/
回答
openCV允许我们从摄像机捕获单个帧并将其保存到磁盘。如果我们随后需要操纵它们来创建视频,我建议我们使用netpbm,这是一组功能非常强大的命令行工具,可以将其与一些shell脚本配合使用来制作视频或者执行所需的任何操作。
回答
如果需要编程,最好使用GStreamer,这是Linux下的多媒体框架。
Hymanbravo提到的Cheese是基于GStreamer的,而我正在开发的流服务器Flumotion也是基于。
回答
另一种选择是使用Firewire(IEEE1394)摄像机,例如最常见的DV便携式摄像机。与廉价的网络摄像头相比,它们往往能很好地工作并提供更好的视频,并且Linux中有很多用于处理dv的工具,例如dvgrab。
回答
如前所述,使用dvgrab从摄像机的Firewire界面捕获,然后使用ffmpeg(命令行)或者kino(简单gui视频编辑器)之类的工具根据需要处理视频。基于PCI的Firewire卡相对便宜且易于查找。
这里有些例子:
- 从火线连续捕获,每隔几分钟自动分裂
dvgrab --size 500 --autosplit <filename>
- 实时观看相机
dvgrab - | mplayer -
请注意,最近的一些发行版(例如Fedora8)正在使用新的但不成熟的火线驱动程序。但是,Ubuntu的效果很好。
回答
如果使用Java,则v4l4j使从任何V4L设备捕获帧变得非常简单。它还允许我们从Java控制设备。我将其与PTZ网络摄像头(logitech quickam轨道)一起使用,并且可以控制常见的杂物,例如亮度,饱和度和自动白平衡,还可以控制照相机的倾斜和平移。非常便利 !