Suddividere un video VERTICALE in 4 riquadri
Per prima cosa dobbiamo capire se il video è stato girato tenendo lo smartphone orizzontale o verticale; per fare ciò, apriamo un terminale nella cartella in cui si trova il video ed impartiamo il comando
$ mediainfo videoIN.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato videoIN.mp4 Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Rotation : 90° $
In questo caso, si tratta di un video girato in formato 16/9 tramite uno smartphone ruotato di 90 gradi (quindi verticale)
Ora estraiamo 4 spezzoni della medesima lunghezza e (in questo caso) del medesimo video
ffmpeg -i videoIN.mp4 -to 00:00:20 -vcodec copy -acodec copy video01.mp4 -ss 00:00:20 -to 00:00:40 -vcodec copy -acodec copy video02.mp4 -ss 00:00:40 -to 00:01:00 -vcodec copy -acodec copy video03.mp4 -ss 00:01:00 -to 00:01:20 -vcodec copy -acodec copy video04.mp4 # Estrae da videoIN.mp4 4 video: uno che contiene i primi 20 secondi, uno che contiene dal 20esimo al 40esimo secondo, uno che contiene dal 40esimo al 60esimo secondo, ed uno che contiene dal 60esimo all' 80esimo secondo
e ne verifichiamo le caratteristiche
$ mediainfo video01.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato video01.mp4 Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Rotation : 90° $ mediainfo video02.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato video02.mp4 Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Rotation : 90° $ mediainfo video03.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato video03.mp4 Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Rotation : 90° $ mediainfo video04.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato video04.mp4 Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Rotation : 90° $
I 4 video mostrano le medesime caratteristiche del video da cui sono stati ottenuti. In questo caso specifico, si tratta di video in formato 16/9 ruotato di 90 gradi (quindi verticale), di conseguenza, per unirli in un video di 4 riquadri avente la medesima risoluzione e rotazione del video iniziale, possiamo usare l'istruzione
ffmpeg -i video01.mp4 -i video02.mp4 -i video03.mp4 -i video04.mp4 -filter_complex "nullsrc=size=720x1280 [base]; [0:v] setpts=PTS-STARTPTS, scale=360x640 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=360x640 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=360x640 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=360x640 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=360 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=640 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=360:y=640" -vcodec libx264 v4riqVert.mp4
$ mediainfo v4riqVert.mp4 | egrep -iA3 Width # Mostra larghezza, altezza, rapporto e, se presente, ROTAZIONE di un file video chiamato v4riqVert.mp4 Width : 720 pixels Height : 1 280 pixels Display aspect ratio : 0.562 Frame rate mode : Constant $
Notare che ora il comando mediainfo non dice più che si tratta di un video in formato 16/9 ruotato di 90 gradi, ma dice che si tratta di un formato 0.562 = 9/16, che è esattamente la stessa cosa ma detta in modo diverso.
Se il video di partenza avesse avuto rotazione = 0 (quindi orizzontale), avremmo dovuto usare il comando
ffmpeg -i video01.mp4 -i video02.mp4 -i video03.mp4 -i video04.mp4 -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=640x360 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=640x360 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=640x360 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=640x360 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=640 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=360 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=640:y=360" -vcodec libx264 v4riqOriz.mp4