我想从视频中提取帧并在其上应用一些过滤器,例如gabor / hough等。哪个Java库非常适合处理各种视频编码?我一直在关注GStreamer,JMF,Xuggler等,但我无法确定哪一个是最好的。我还希望编辑帧并使用新帧制作视频。
答案 0 :(得分:8)
如果您正在寻找低级操作,例如提取帧并操纵它们,那么Xuggler将是最佳选择,因为API适用于这个低级别。它适用于ffmpeg,因此可以处理所有类型的视频编码。
不要将JMF用于任何事情,它是旧的,过时的和错误的 - GStreamer很好,但API更适合播放视频而不是操纵帧。
答案 1 :(得分:3)
您可以尝试Marvin Framework。它使用JavaCV进行视频编码和设备访问,但所有图像处理算法都是纯Java。
可以非常轻松地加载视频并实时处理帧,如下面的边缘检测示例所示。
源代码:
Console.WriteLine($"{playerInput} is not a valid input.");
答案 2 :(得分:1)
答案 3 :(得分:0)
Xuggler,是的。但是如果你要进行大量的图像处理,你应该使用OpenImaj。这个库使用Xuggler作为它的依赖,但这并不是它的全部功能。想想拥有Opencv的功能而不缺乏Java中的速度。此外,它所需要的只是添加一个maven依赖,你很高兴。代码量也减少了。
注意:我仍在审核图书馆,并会不断更新我的答案。