Script per estrarre da file video VERTICALE con caratteristiche note un file video ridotto + ritaglio ingrandito visibili in TV

Lun, 05/11/2018 - 00:31
Ritratto di Sargon6

Script per estrarre da file video VERTICALE con caratteristiche note un file video ridotto + ritaglio ingrandito visibili in TV

Inviato da Sargon6 0 commenti

# questo script estrae dal file video videoIN.mp4 dalle caratteristiche note (Risoluzione: 1280x720 formato: 16/9 verticale) un file video che poi usa per creare un video con Risoluzione: 1280x720 formato: 16/9 orizzontale contenente sulla sinistra il video verticale 400x720, e sulla destra il medesimo video tagliato 880x720.
# 
ffmpeg -i videoIN.mp4 -ss 00:00:50 -to 00:01:10 -vcodec libx264 -filter:v fps=30 -b:v 12M -bufsize 12M -vf transpose=2,transpose=1 -acodec copy video01.mp4 # Estrae i primi 20 secondi del file videoIN.mp4 
ffmpeg \
	-i video01.mp4 \
	-filter_complex " \
		color=s=1280x720:c=red [base]; \
		[0:v] setpts=PTS-STARTPTS, scale=400x720 [sinistra]; \
		[0:v] setpts=PTS-STARTPTS, crop=w=720:h=590:x=0:y=350 [destra]; \
		[destra] setpts=PTS-STARTPTS, scale=880x720 [destra2]; \
		[base][sinistra] overlay=shortest=1:x=0:y=0 [tmp1]; \
		[tmp1][destra2] overlay=shortest=0:x=400:y=0 \
	" \
	-vcodec libx264 -acodec copy \
	outputScriptVideo9x16f.mp4

#
# Spiegazione singole righe
# «ffmpeg \» Indica il comando a cui applicare i parametri che seguono
# «-i video01.mp4 \» Elenca il video che verrà processato
# «-filter_complex " \» Inizio del filtro composto da più elementi
# «color=s=1280x720:c=red [base]; \» Imposta dimensioni, colore, e [NomeInCodice] dello sfondo del file di output
# «[0:v] setpts=PTS-STARTPTS, scale=400x720 [sinistra]; \» Preleva il primo file video dall'inizio, lo riscala e ne dichiara il [NomeInCodice]
# «[0:v] setpts=PTS-STARTPTS, crop=w=720:h=590:x=0:y=350 [destra]; \» Dall'inizio del primo file video in imput, preleva un'area di w,h pixels con coordinate x,y e ne dichiara il [NomeInCodice]
# «[destra] setpts=PTS-STARTPTS, scale=880x720 [destra2]; \» Riscala [destra] e lo nomina [destra2]
# «[base][sinistra] overlay=shortest=1:x=0:y=0 [tmp1]; \» Crea il video temporaneo [tmp1] sovrapponendo [sinistra] a [base], specificando le coordinate X,Y di [sinistra]. [tmp1] avrà le dimensioni di [base], durata pari a quella del video in ingresso che dura meno, e audio di [sinistra].
# «[tmp1][destra2] overlay=shortest=0:x=400:y=0 \» Crea il video finale sovrapponendo [destra2] a [tmp1], specificando le coordinate X,Y di [destra2]. Il video finale avrà le dimensioni di [base], durata pari a quella del video in ingresso che dura di più, e audio di [sinistra2].
# «" \» Fine del filtro composto da più elementi
# «-vcodec libx264 -acodec copy \» Imposta il codec Video ed audio del file che si vuole ottenere
# «outputVideo9x16.mp4» Stabilisce il nome del file di output frutto delle operazioni precedenti
#