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

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

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

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


person Jatin    schedule 04.10.2013    source источник


Ответы (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
person Spynet    schedule 28.11.2013
comment
В вашей первой команде вы конвертируете любой файл, который вы получаете, в файл TS 1280 * 720. Таким образом, вы объединяете файлы с одинаковым разрешением, верно? - person Prasanna Sundar; 19.08.2016