2013-10-04 6 views
4

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

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

16:38:03.916 [main] WARN com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1430) Exception in thread "main" java.lang.RuntimeException: failed to encode video

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

ответ

2

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

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

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

ffmpeg -i "concat:out1.ts|out2.ts" -c:v libx264 -strict experimental -bsf:a aac_adtstoasc -ar 48000 -r 20 output.mp4 
+0

хороший ответ, помог мне –

+0

В вашей первой команде, вы конвертируете любой файл, который вы получаете в файл TS 1280 * 720 TS. Таким образом, вы объединяете файлы с одинаковым разрешением, не так ли? –

+0

да @PrasannaSundar – Spynet

Смежные вопросы