我想编写一个使用 FFMPEG 将视频转换为帧的程序。当我在 Ubuntu 终端上使用它时,它工作正常。但是当我尝试将它放入 Java 代码时,它给了我一个运行时错误。我在下面的代码中犯了错误吗?
import java.util.*;
import java.awt.*;
import java.lang.*;
import java.lang.Runtime;
import java.io.*;
import java.io.IOException;
public class ConvertVideoToImage
{
private SingletonServer ss = null;
public ConvertVideoToImage(SingletonServer ss)
{
this.ss = ss;
}
public void run()
{
convertVideo();
}
public void convertVideo()
{
try
{
Runtime rt = Runtime.getRunTime().exec("ffmpeg" + "-i" + "display.wmv" + "image%d.jpg");
}
catch(Exception e){}
}
}
编辑:
我已经按照您的建议更改了代码,但它也不起作用。当我用谷歌搜索它时,我发现有人将完整路径放入可执行文件中,它变成了这样:
Runtime.getRuntime().exec("/home/pc3/Documents/ffmpeg_temp/ffmpeg -i display.wmv image%d.jpg")
顺便说一句,谢谢你的回复。我有另一个问题。是否可以为 FFMPEG 做一个计数器?我在 Ubuntu 终端中使用此命令将视频转换为 30 帧/1 秒:
ffmpeg -i display.wmv image%d.jpg
这将自动生成像 image1.jpg、image2.jpg 到 image901.jpg 这样的数字。可以为此做一个计数器吗?因为我需要统计文件并控制数量。
提前致谢。