Registro il mio desktop con avconv (aka ffmpeg) e poi lo ridimensiono a 720p.
Di recente ho aggiunto al mio script in modo che possano selezionare una finestra con xwininfo e questa verrà registrata in modo specifico.
Tuttavia, se il formato di output non è divisibile per 2, l'encoder si spaventa e non vedo il mio video.
C'è un modo per risolvere questo problema all'interno di ffmpeg, quindi non devo fare un sacco di matematica manuale in bash per impostare i valori di scala?
È possibile sottrarre / aggiungere il filtro di scala a larghezza / altezza se non sono uniformi? (il giro?)
È possibile applicare un altro filtro dopo la scala originale che potrebbe ottenere questo risultato? (Ciò arrotonderebbe i video con dimensioni di input irregolari e nessun ridimensionamento)
#!/bin/bash
avconv \
-f x11grab -r $fps -s $capturesize -i :0.0$offset \
-vcodec libx264 \
-vf scale=-1:720 \
-pre:v lossless_ultrafast \
-threads 4 \
-y $@
Alcune vecchie mailing list suggeriscono una round()
funzione che puoi usare nel filtro ma non riesco a capire bene la sintassi. Se funziona, un scale=round(iw,2):round(ih,2)
filtro applicato alla fine risolverebbe tutti i miei problemi in una volta. iw
e ih
non sembra funzionare.
ceil
invecetrunc
un numero di coppia maggiore come nel caso di 16: 9 480p