gpt4 book ai didi

java - Java中的FFMPEG(运行时错误)

转载 作者:行者123 更新时间:2023-12-04 23:31:02 26 4
gpt4 key购买 nike

我想编写一个使用 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 这样的数字。可以为此做一个计数器吗?因为我需要统计文件并控制数量。

提前致谢。

最佳答案

当您调用 exec ,您不应该在命令字符串中指定参数,而是将它们作为第二个参数传递到数组中。

Process p = Runtime.getRunTime().exec("ffmpeg",
new String[]{"-i", "display.wmv", "image%d.jpg"));
// are you sure regarding this %^

关于java - Java中的FFMPEG(运行时错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com