问题描述
- 有人知道在 java中使用ffmpeg转码时,怎么判断转码是否已经结束了呢
- if(!strFileType.equals("".mp4"")&&!strFileType.equals("".flv"")&&!strFileType.equals("".mov""))
{
commend.add(""E:ffmpegbinffmpeg.exe"");commend.add(""-i"");
commend.add(resourcePath);
commend.add(""-ab"");
commend.add(""56"");
commend.add(""-ar"");
commend.add(""22050"");
commend.add(""-qscale"");
commend.add(""8"");
commend.add(""-r"");
commend.add(""15"");
commend.add(""-s"");
commend.add(""600x500"");
commend.add(ServletActionContext.getServletContext().getRealPath(""/videos"")+""//""+savename+"".flv"");vE.setVEUrl(savename+"".flv""); try { ProcessBuilder builder = new ProcessBuilder(commend); Process p=builder.start(); //p.waitFor();好像不行啊?。。阻塞了貌似 } catch (IOException e) { e.printStackTrace(); }
解决方案
看这个例子
http://blog.chinaunix.net/uid-25885064-id-3396371.html
解决方案二:
用Process.waitFor等待进程结束。
解决方案三:
如果不想阻塞,那么就可以开个线程什么的监控进程对象是否退出。