013 Creare un file multimediale costituito da vari video, ciascuno dei quali occupa una porzione dello schermo visibile.

27 Agosto, 2022 (15:49) | ffmpeg, Fotografia digitale, Linux, Video | By: sargonsei

013 Creare un file multimediale costituito da vari video, ciascuno dei quali occupa una porzione dello schermo visibile.
#
# Cose da sapere prima di cominciare.
# 1. Se non specificamente indicato diversamente, FFmpeg fa in modo che:
# -il file multimediale in uscita abbia come audio l’audio del primo file multimediale in ingresso [0:v].
# -il file multimediale in uscita abbia come durata la durata del primo file multimediale in ingresso [0:v].
# 2. Se l’utente imposta una risoluzione NON proporzionata
# FFmpeg provvede autonomamente a deformare le proporzioni del video in entrata.
# 3. FFmpeg provvede autonomamente all’eliminazione di ogni porzione di ogni video in ingresso
# che fuoriesce dai margini prestabiliti del video un uscita,
# 4. Se l’utente imposta risoluzione e posizione di ogni singolo video in modo che i video si sovrappongono in parte o totalmente,
# FFmpeg farà in modo che il video a cui corrisponde un numero più basso sia coperto dal video a cui corrisponde un numero più alto.
#
# A) Volendo creare un file multimediale avente:
# risoluzione video finale: 1280×720 pixels; codec Video: libx264
# Video 0 -> Risoluzione: 1280×720 pixels; distanza pixel in alto a sinistra: X=0; Y=0
# Video 1 -> Risoluzione: 320×180 pixels; distanza pixel in alto a sinistra: X=910; Y=50
#
# aprire un terminale nella cartella di lavoro ed impartire il comando seguente:
ffmpeg -i videoIN0.mp4 -i videoIN4.mp4 -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=1280x720 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320x180 [upperright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=910:y=50" -vcodec libx264 vOUTx2-A.mp4#
# B) Volendo creare un file multimediale avente:
# risoluzione video finale: 1280×720 pixels; codec Video: libx264
# Video 0 -> Risoluzione: 640×720 pixels; distanza pixel in alto a sinistra: X=0; Y=0
# Video 1 -> Risoluzione: 640×720 pixels; distanza pixel in alto a sinistra: X=640; Y=00
#
# aprire un terminale nella cartella di lavoro ed impartire il comando seguente:
ffmpeg -i videoIN4.mp4 -i videoIN0.mp4 -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=640x720 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=640x720 [upperright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=640:y=0" -vcodec libx264 vOUTx2-B.mp4#
# C) Volendo creare un file multimediale avente:
# risoluzione video finale: 1280×720 pixels; codec Video: libx264; schermo suddiviso in 4 parti uguali
# Video 0 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=0; Y=0
# Video 1 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=640; Y=0
# Video 2 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=0; Y=360
# Video 3 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=640; Y=360
#
# aprire un terminale nella cartella di lavoro ed impartire il comando seguente:
ffmpeg -i videoIN0.mp4 -i videoIN1.mp4 -i videoIN2.mp4 -i videoIN3.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 vOUTx4-C.mp4#
# D) Volendo creare un file multimediale avente:
# risoluzione video finale: 1280×720 pixels; codec Video: libx264
# Video 0 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=0; Y=0
# Video 1 -> Risoluzione: 413×240 pixels; distanza pixel in alto a sinistra: X=753; Y=60
# Video 2 -> Risoluzione: 920×360 pixels; distanza pixel in alto a sinistra: X=0; Y=360
# Video 3 -> Risoluzione: 360×360 pixels; distanza pixel in alto a sinistra: X=920; Y=360
#
# aprire un terminale nella cartella di lavoro ed impartire il comando seguente:
ffmpeg -i videoIN0.mp4 -i videoIN1.mp4 -i videoIN2.mp4 -i videoIN3.mp4 -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=640x360 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=413x240 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=920x360 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=360x360 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=753:y=60 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=360 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=920:y=360" -vcodec libx264 vOUTx4-D.mp4#
# E) Volendo creare un file multimediale avente:
# risoluzione video finale: 1280×720 pixels; codec Video: libx264
# Video 0 -> Risoluzione: 640×360 pixels; distanza pixel in alto a sinistra: X=0; Y=0
# Video 1 -> Risoluzione: 853×480 pixels; distanza pixel in alto a sinistra: X=640; Y=0
# Video 2 -> Risoluzione: 853×480 pixels; distanza pixel in alto a sinistra: X=0; Y=360
# Video 3 -> Risoluzione: 426×240 pixels; distanza pixel in alto a sinistra: X=870; Y=500
#
# aprire un terminale nella cartella di lavoro ed impartire il comando seguente:
ffmpeg -i videoIN0.mp4 -i videoIN1.mp4 -i videoIN2.mp4 -i videoIN3.mp4 -filter_complex "nullsrc=size=1280x720 [base]; [0:v] setpts=PTS-STARTPTS, scale=640x360 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=853x480 [upperright]; [2:v] setpts=PTS-STARTPTS, scale=853x480 [lowerleft]; [3:v] setpts=PTS-STARTPTS, scale=426x240 [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=870:y=500" -vcodec libx264 vOUTx4-E.mp4