Ho un file MP4 di una registrazione dello schermo che devo ritagliare. Come posso farlo senza utilizzare strumenti costosi come Adobe Premier o Final Cut? Preferisco ffmpeg
perché lho già usato.
Risposta
Utilizza 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
è laltezza del rettangolo di output -
x
ey
specifica langolo superiore sinistro del rettangolo di output
Immagine originale
Immagine originale 320 x 240
Esempio 1
Per ritagliare una sezione 80 × 60, a partire dalla posizione (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
- Laudio è stream copiato in questo esempio, così 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 equivale a:
ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4
- Puoi fare riferimento alla dimensione dellimmagine in ingresso con
in_w
ein_h
come mostrato in questo primo esempio. La larghezza e laltezza di output possono essere utilizzate anche conout_w
eout_h
.
Esempio 3
Ritaglia 20 pixel dallalto 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
ey
vengono omessi come in questo esempio.
Anteprima
Puoi prendere un ritaglio (heh heh) e visualizzarlo in anteprima dal vivo 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.
Note
-
Il codificatore predefinito per MP4 è
libx264
(video H.264) ompeg4
(MPEG- 4 video parte 2) a seconda del tuoffmpeg
build. Vedi FFmpeg Wiki: H.264 Video Encoding Guide per maggiori informazioni. -
Invece di ritagliare e ri- codifica, considera il ritaglio durante la riproduzione. Ciò è possibile con qualsiasi lettore che valga la pena utilizzare.
-
ffmpeg
build utilizzate-croptop
,-cropbottom
,-cropleft
,-cropright
invece dellecrop
filtro. Se questo è il tuo caso, ottieni un modernoffmpeg
. Lo sviluppo è molto attivo e non cè motivo di utilizzare un oggetto antico.
crop
filter) ricodifica il video, vedi stackoverflow.com/questions/33378548/… se ri- la codifica è importante per te-filter:v
obsoleto con quello più aggiornato e più semplice da digitare-vf
. Ciao!cropdetect
prima di avere i parametri di ritaglio di stampa ffmpeg per te:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4