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

#java #ffmpeg #mp4 #m3u8

#java #ffmpeg #МР4 #m3u8

Вопрос:

В настоящее время я кодирую настольную утилиту, которая загружает Twich-клипы, если они соответствуют некоторым требованиям. Поскольку twitch api выдает в качестве ответа файл m3u8, я должен преобразовать его в mp4. Для этого я выполняю команду cmd через мое Java-приложение, используя ProcessBuilder API, встроенный в 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 ответов на похожие сообщения мне не помог.

Комментарии:

1. Все еще обращаешься за помощью!

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

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