l'uso del filtro scala lo farà, ma c'è qualcosa in più.
ffmpeg -i input.mov -vf scale=720x406 output.mov
creerà un filmato con le dimensioni in pixel richieste, ma se guardi l'output scoprirai che aggiunge informazioni nei metadati in modo che venga riprodotto con le stesse proporzioni dell'originale, usando pixel non quadrati. Quindi, se si desidera estendere il film in modo anamorfico a un nuovo formato, è necessario impostare manualmente il formato pixel, chiamato SAR per "Sample Aspect Ratio", quindi per i pixel quadrati utilizzare:
ffmpeg -i input.mov -vf scale=720x406,setsar=1:1 output.mov
In alternativa puoi impostare le proporzioni di visualizzazione su quello che vuoi, quindi:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 output.mov
Quello che sto facendo con il comando -vf e le espressioni x = y, z = a che seguono è la creazione di una catena di filtri . I filtri possono essere piuttosto complessi, ma nell'uso più semplice prendono la forma effect=parameter,nexteffect=anotherparameter
e vengono elaborati nell'ordine in cui li scrivi.
Potresti voler inserire comandi aggiuntivi per il codec e così via, ad esempio -c:v libx264
per utilizzare l'encoder x264 mp4 e qualcosa di simile -crf 20
a impostare il fattore di frequenza costante su 20 (di solito un buon compromesso tra dimensioni e qualità). Quindi, un comando ragionevolmente completo sarebbe simile a:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 -c:v libx264 -preset slow -profile:v main -crf 20 output.mov
Il profilo principale è buono per la compatibilità dei dispositivi, il slow
preset per l'encoder libx264 è un buon compromesso tra velocità e qualità, quindi questo è un buon cavallo di lavoro per la codifica web generale. Puoi renderlo più veloce usando fast
o veryfast
o più lentamente con veryslow
e placebo
lo renderai sempre leggermente migliore che veryslow
a scapito di molto più tempo di elaborazione (da qui il nome).
BTW Non utilizzare la copia -c , che significa semplicemente copiare il video e flussi audio senza fare nulla per loro a tutti , in modo da niente che fare in termini di scala, codec, bitrate, ecc avrà alcun effetto.