В настоящее время я пишу утилиту для настольного компьютера, которая загружает 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 ответов на подобные посты не помог мне.