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 e y specifica langolo superiore sinistro del rettangolo di output

Immagine originale

immagine originale
Immagine originale 320 x 240

Esempio 1

80 x 60

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 

Esempio 2

quarto in basso a destra

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 e in_h come mostrato in questo primo esempio. La larghezza e laltezza di output possono essere utilizzate anche con out_w e out_h.

Esempio 3

20 pixel dallalto e 20 dal basso

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 e y 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

  • crop documentazione sui filtri

  • Il codificatore predefinito per MP4 è libx264 (video H.264) o mpeg4 (MPEG- 4 video parte 2) a seconda del tuo ffmpeg 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 delle crop filtro. Se questo è il tuo caso, ottieni un moderno ffmpeg . Lo sviluppo è molto attivo e non cè motivo di utilizzare un oggetto antico.

Commenti

  • Funziona con ' avconv ' adesso.
  • vale la pena menzionare questa tecnica (con crop filter) ricodifica il video, vedi stackoverflow.com/questions/33378548/… se ri- la codifica è importante per te
  • modificato per cambiare il -filter:v obsoleto con quello più aggiornato e più semplice da digitare -vf . Ciao!
  • Se ' stai tentando di rimuovere le barre nere attorno al tuo video (piallarbox, letterbox, windowbox ecc.) Utilizza cropdetect prima di avere i parametri di ritaglio di stampa ffmpeg per te: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Questo filtro di ritaglio funziona alla grande! Per determinare il riquadro di delimitazione necessario per ritagliare un video, ho esportato un fotogramma video in unimmagine con ffmpeg. Quindi apro limmagine con GIMP dove posso disegnare un riquadro di delimitazione per larea in cui volevo ritagliare il video e quindi posso ottenere le informazioni X, Y, W, H dalla finestra del puntatore. Chiedi se questo non è abbastanza chiaro.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *