使用ffmpeg.exe和java从视频中获取图像

时间:2013-06-28 16:48:48

标签: java image video ffmpeg

我正在尝试创建一个java函数,在输入视频中它会按秒生成一组图像,到目前为止这就是我所拥有的:

public static void decodeAndCaptureFrames(String inputfilename,String outputfolder,int width,int height,double seconds)抛出InputFormatException,EncoderException     {         double duration = getVideoLenght(inputfilename);         int index = 0;

    Runtime runtime = Runtime.getRuntime();
    for(double s = 0; s < duration; s+= seconds)
    {
        String outString = outputfolder + File.separator + index + ".png";
        String cmd = "ffmpeg.exe -i "+ inputfilename +" -f image2 -t 0.001 -ss "+ s +" -s "+ width +"x"+ height +" "+outString;

        try {
            Process p = runtime.exec(cmd);
            p.waitFor()
        } catch (IOException e) {
            System.out.println("problema nell'esecuzione del runtime.exec");
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println(cmd);
        index++;
    }   
}

然而,代码非常慢,即使我得到了更多图像的打印,它也只会转换前两个图像。 由于我正在使用这个外部exe,有​​人可以告诉我,如果我在运行时和进程上做错了吗? 感谢。

0 个答案:

没有答案