Java中的FFMPEG(运行时错误)
我想写一个程序,用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,图片2。jpg,转到image901。jpg。能为这个做个柜台吗?因为我需要清点文件并控制数量
提前谢谢
# 1 楼答案
调用
exec
时,不应在命令字符串中指定参数,而应将它们作为第二个参数在数组中传递