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

В настоящее время я разрабатываю настольную утилиту, которая загружает клипы Twich, если они соответствуют некоторым требованиям. Поскольку twitch 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://thewikihow.com/video_FfFvStNl-9o

При загрузке на ютуб много видео, багов нету, не знаю толком почему, но в конце хорошо видно о чем я. Я неправильно использую ffmepg?

Я разместил это, так как ни один из 1000 ответов на подобные сообщения не помог мне.

Все еще ищу помощи!

Alessandro Autiero 24.03.2019 11:13

Является ли ваш m3u8 списком медиафайлов, которые вы хотите объединить?

Amessihel 24.03.2019 16:52

Нет, это файл m3u8, который содержит одно и то же видео в разном разрешении, но файл по умолчанию (тот, который преобразуется) — 720p60fps.

Alessandro Autiero 25.03.2019 21:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
471
0

Другие вопросы по теме