尝试使用ffmpeg

时间:2019-03-23 21:41:58

标签: java ffmpeg mp4 m3u8

我目前正在编写一个桌面实用程序,如果满足某些要求,它会下载Twich Clips。由于抽搐api作为响应提供了一个m3u8文件,因此我必须将其转换为mp4。为此,我正在使用Java内置的ProcessBuilder API通过Java应用程序执行cmd命令。该命令可以正常工作,但有时我会收到一个断断续续的帧和音频错误的视频。这是我的代码:

public static void convertFile(File input, File output) {
    String command = "ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -vsync 2 -i \"" + input.getAbsolutePath() + "\" -c copy " + "\"" + output.getAbsolutePath() + "\"";
    System.out.println("______________________________________________________");
    System.out.println("Converting file...");
    System.out.println("Using as input " + input.getAbsolutePath());
    System.out.println("Using as output " + output.getAbsolutePath());
    System.out.println("Using as command: " + command);
    System.out.println("______________________________________________________");
    setHasDone(false);

    ProcessBuilder pb = new ProcessBuilder();
    pb.command(command.split(" "));

    pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
    pb.redirectError(ProcessBuilder.Redirect.INHERIT);

    Process process;
    try {
        process = pb.start();
    }catch (IOException e){
        e.printStackTrace();
        return;
    }

    while (process.isAlive()){
        setHasDone(false);
    }

    setHasDone(true);
}

损坏的视频示例: https://youtu.be/FfFvStNl-9o

上传到youtube时,很多视频错误都不存在,也不知道为什么,但是最后您可以清楚地看到我在说什么。我使用ffmepg错了吗?

我发布了此信息,因为类似帖子中的1000个答案都没有帮助我。

0 个答案:

没有答案