Добавить видео файлы разной ширины, высоты

Я создаю приложение, где пользователь может записать скринкаст. Неотъемлемой частью приложения является то, что можно приостановить запись и возобновить ее позже в любое время (сеанс поддерживается на стороне сервера).

Так, скажем, когда пользователь начинает запись экрана, ширина и высота:1024*768. Используя xuggler (Java-упаковщик для ffmpeg), я могу создать видео. Но, скажем позже, он работает в другой системе и хочет возобновить съемку экрана, затем разрешение меняется на 1080 * 720. На этом этапе я записываю его отдельно, а затем пытаюсь объединить два файла. Но поскольку ширина и высота не совпадают, я получаю следующее исключение:

16: 38: 03.916 [main] WARN com.xuggle.xuggler - ошибка: изображение не той же ширины, что и этот кодер (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1430) Исключение в потоке "main" java.lang.RuntimeException: не удалось кодировать видео

Каков наилучший способ решить эту проблему. Пользователь может находиться на экране с разной шириной и высотой. Как объединить (или любые другие альтернативы, возможно, добавить) видеофайлы различной ширины и высоты?

1 ответ

Я не знаю о xuggler, но используя FFMpeg, я смог объединить видео с другим разрешением, используя следующую последовательность команд. Для каждого видео я использую следующую команду

ffmpeg -i input(n).mp4 -c copy -vbsf h264_mp4toannexb -f mpegts -s 1280*720 out(n).ts

И после генерации всех файлов out.ts я использую следующую команду, чтобы объединить все видео

ffmpeg -i "concat:out1.ts|out2.ts" -c:v libx264 -strict experimental -bsf:a aac_adtstoasc -ar 48000 -r 20 output.mp4
Другие вопросы по тегам