Qualcosa del genere dovrebbe funzionare con i parametri corretti per ciascun caso:
Nota: la risposta originale è stata pubblicata in questo link: come posso ritagliare un video con ffmpeg? che originariamente pubblicato da me e modificato più volte al fine di aggiornarlo alle ultime opzioni nelle versioni più recenti di ffmpeg. Mille grazie a Slhck , Jonathan. , Anton Rudeshko , LordNeckbeard e futuri manutentori.
Nelle versioni recenti di FFmpeg, utilizzare il crop
filtro :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
Dove le opzioni sono le seguenti:
out_w
è la larghezza del rettangolo di output
out_h
è l'altezza del rettangolo di output
x
e y
specifica l'angolo in alto a sinistra del rettangolo di output
Immagine originale
Immagine originale 320x240
Esempio 1
Per ritagliare una sezione 80 × 60, partendo dalla posizione (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
- In questo esempio l'audio viene copiato in streaming , quindi si evita la ricodifica.
Esempio 2
Per ritagliare il quarto in basso a destra:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
Questo è lo stesso di:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
Che è lo stesso di:
ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
- È possibile fare riferimento alla dimensione dell'immagine di input con
in_w
e in_h
come mostrato in questo primo esempio. La larghezza e l'altezza dell'output possono essere utilizzate anche con out_w
e out_h
.
Esempio 3
Ritaglia 20 pixel dall'alto e 20 dal basso:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
- Il filtro centrerà automaticamente il ritaglio se
x
e y
viene omesso come in questo esempio.
Anteprima
Puoi prendere un ritaglio (eh eh) e visualizzarlo in anteprima con ffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
In questo modo puoi sperimentare e regolare il ritaglio senza la necessità di codificare, visualizzare, ripetere.
Appunti
crop
documentazione del filtro
L'encoder predefinito per MP4 è libx264
(video H.264) o mpeg4
(video MPEG-4 parte 2) a seconda della ffmpeg
build. Vedi FFmpeg Wiki: Guida alla codifica video H.264 per maggiori informazioni.
Invece di ritagliare e ricodificare, considerare il ritaglio durante la riproduzione. Questo è possibile con qualsiasi giocatore che valga la pena usare.
Antica ffmpeg
costruisce usato -croptop
, -cropbottom
, -cropleft
, -cropright
opzioni al posto del crop
filtro. Se questo è il tuo caso, procurati un modernoffmpeg
. Lo sviluppo è molto attivo e non c'è motivo di usare un oggetto antico.
ffplay
qualeffmpeg
in pratica è possibile utilizzare per ritagliare le dimensioni dello schermo video.