Как исправить «Немонотонный DTS в выходном потоке 0: 1» при попытке конвертировать файл m3u8 в mp4 с помощью ffmpeg - PullRequest
0 голосов
/ 24 марта 2019

В настоящее время я пишу утилиту для настольного компьютера, которая загружает Twich Clips, если они удовлетворяют некоторым требованиям.Поскольку twiq api дает в ответ файл m3u8, я должен преобразовать его в mp4.Для этого я выполняю команду cmd через приложение Java, используя API-интерфейс ProcessBuilder, встроенный в Java.Команда работает нормально, но иногда я получаю видео с ошибками, которое содержит битые кадры и звук.Вот мой код:

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 ответов на подобные посты не помог мне.

...