Понякога правя върховната глупост да снимам видео с телефона, като го държа вертикално. После се усещам и го завъртам както си трябва и правя още едно видео. А накрая ми се иска да ги обединя. Намирането на безплатен софтуер, който да слива подобен тип вертикално и хоризонтално разположени видео файлове ме затрудни. За това се върнах отново към класиката ffmpeg.
Стъпките за обединяване на 2 подобни видео файла са следните:
- двата файла трябва да са с едни и същи кодеци
- конвертиране на 2-та файла до TS-формат
- напасване на двата файла по широчина и височина, като се добавя padding (отстояния) в картината на файла, сниман вертикално
- обединяване на двата файла
Ще си помогна с един пример:
video1.mp4 – хоризонтално разположено с размери на картината 1920×1080.
video2.mp4 – вертикално разположено с размери на картината 1080×1920.
out_full.mp4 – изходния файл, след обединяването на двата
Използвам по-долните команди за ffmpeg са тествани под Win7, но вероятно ще работят и под Linux.
1 2 3 4 | ffmpeg -i video1.mp4 -q 1 -f mpegts out1.ts ffmpeg -i video2.mp4 -q 1 -vf "scale=iw*min(1920/iw\,1080/ih):ih*min(1920/iw\,1080/ih),pad=1920:1080:(1920-iw)/2:(1080-ih)/2" -f mpegts out2.ts ffmpeg -i "concat:out1.ts|out2.ts" -c:a aac -b:a 128k -vcodec libx264 -preset slow out_full.mp4 |