-->

视频处理库的Java(Video Processing Library for Java)

2019-08-01 18:14发布

我想提取从视频帧,它适用于一些过滤器,如的Gabor /霍夫等。其中的Java库将是完美的处理各种视频编码的? 我一直在寻找的GStreamer,JMF,Xuggler等。但我无法决定哪一个是最好的。 我也期待编辑框架,使影片具有了新的框架。

Answer 1:

如果你正在寻找这样做低级操作,如提取帧和操纵它们,然后Xuggler将是最好的选择,因为这些API都是围绕这个水平低为目标。 它的工作原理上的ffmpeg这样可以处理所有类型的视频编码。

不要使用JMF什么,这是旧的,过时的和马车 - GStreamer是好的,但API更适合于播放视频,而不是操纵帧。



Answer 2:

你可以试试马文框架 。 它采用JavaCV视频编码和设备访问,但所有的图像处理算法是纯Java。

这很容易加载视频和实时处理的帧,如示于下边缘检测的例子。

源代码:

import static marvin.MarvinPluginCollection.*;

public class SimpleVideoProcessing extends JFrame implements Runnable{

    private MarvinVideoInterface    videoAdapter = new MarvinJavaCVAdapter();
    private MarvinImagePanel        videoPanel = new MarvinImagePanel();
    private MarvinImage             videoFrame, videoOut = new MarvinImage(640,480);

    public SimpleVideoProcessing() throws MarvinVideoInterfaceException{
        super("Simple Video Processing using Marvin");
        add(videoPanel);
        // Load video file and start the processing thread
        videoAdapter.loadResource("./res/snooker.wmv");
        new Thread(this).start();
        setSize(640,500);
        setVisible(true);
    }

    public void run() {
        try {
            while(true){
                // Request, process and show the video frame.
                videoOut.clear();
                videoFrame = videoAdapter.getFrame();
                prewitt(videoFrame.clone(), videoOut);
                videoPanel.setImage(videoOut);
            }
        } catch (MarvinVideoInterfaceException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws MarvinVideoInterfaceException {
        new SimpleVideoProcessing().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}


Answer 3:

JMF是一个不错的选择。 但是,如果处理时间是在你的代码很重要,它是更好地使用Xuggler。 显然,JMF比Xuggler比较一般。



Answer 4:

Xuggler,是的。 但是,如果你将要从事大量的图像处理,你应该去OpenImaj 。 此库使用Xuggler作为它的依赖,但是这还不是全部它做什么。 认为有opencv的能力不缺乏速度,你在Java中获得的。 此外,它所需要的是增加一个Maven的依赖,你是好去。 的代码量也减少了。

:我仍在评估库,并会不断更新我这是如何去回答。

介绍视频: https://www.youtube.com/watch?v=TNEQ0eNqLgA



文章来源: Video Processing Library for Java