首先让我说我对 Java 完全陌生。我来自 PHP 背景,但碰巧我的一项 PHP 任务需要转换为 Java。
任务是使用 ffmpeg 将视频分割成帧,然后使用这些帧。我已经在 PHP 中完成了这个过程。现在我可以将它转换成 Java。
我浏览了一些教程并掌握了基础知识(使用 IDE、运行 java 程序等)。我为此目的使用 Eclipse。
到目前为止,我已经设法通过使用 java 程序来启动 ffmpeg
public static void main(String[] args) throws IOException {
String livestream = "D:/video.mpg";
String folderpth = "D:/frames";
String cmd="D:/ffmpeg/bin/ffmpeg.exe -i "+ livestream +" -r 10 "+folderpth+"/image%d.jpg";
//System.out.println(cmd);
Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd); // this starts creating frames
// and stores them on local disk
// any way to store that frame name in array?
// something like String[] frames = {"image%d.jpg"}
// so that frames array contains image1.jpg, image2.jpg..and so on?
}
这工作正常,我正在文件夹中获取框架。现在我想做的是在一段时间后终止进程,比如 5 分钟,因为视频超过 2 小时,我不想去任务栏手动终止进程。我还想知道是否有办法将 ffmpeg 创建的帧名称存储到数组中以备将来使用。
我尝试使用p.destroy()
,但这并没有停止这个过程。setTimeout()
我将如何使用与jQuery 中使用的类似的东西?
一些元数据
操作系统:Windows 7
IDE:日食