Jeg har en MP4-fil av et skjermopptak som jeg må beskjære. Hvordan kan jeg oppnå dette uten å bruke dyre verktøy som Adobe Premier eller Final Cut? Jeg foretrekker ffmpeg fordi jeg har brukt det før.

Svar

Bruk crop filter :

ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 

Hvor alternativene er som følger:

  • out_w er bredden på utgangsrektangelet
  • out_h er høyden på utgangsrektangelet
  • x og y spesifiserer øverste venstre hjørne av utgangsrektangel

Originalbilde

originalbilde
Original 320×240 bilde

Eksempel 1

80x60

Å beskjære en 80 × 60 seksjon, fra posisjon (200, 100):

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4 

Eksempel 2

nederste høyre kvartal

Slik beskjæres nederste høyre kvartal:

ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4 

Dette er det samme som:

ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4 

Hvilket er det samme som:

ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4 
  • Du kan referere til størrelsen på inngangsbildet med in_w og in_h som vist i dette første eksemplet. Utgangsbredden og høyden kan også brukes med out_w og out_h.

Eksempel 3

20 piksler fra toppen og 20 fra bunnen

Beskjær 20 piksler fra toppen og 20 fra bunnen:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 
  • Filteret sentrerer beskjæringen automatisk hvis x og y er utelatt som i dette eksemplet.

Forhåndsvisning

Du kan ta en beskjæring (heh heh) og forhåndsvise den live med ffplay:

ffplay -i input -vf "crop=in_w:in_h-40" 

På denne måten kan du eksperimentere og justere beskjæringen din uten å måtte kode, vise, gjenta.

Merknader

  • crop filterdokumentasjon

  • Standardkoder for MP4 er libx264 (H.264 video) eller mpeg4 (MPEG- 4 Del 2-video) avhengig av ffmpeg bygg. Se FFmpeg Wiki: H.264 Video Encoding Guide for mer info.

  • I stedet for å beskjære og re- koding, bør du vurdere å beskjære ved avspilling. Dette er mulig med alle spillere som er verdt å bruke.

  • Ancient ffmpeg builds used -croptop , -cropbottom, -cropleft, -cropright alternativer i stedet for crop filter. Hvis dette er tilfelle for deg, får en moderne ffmpeg . Utviklingen er veldig aktiv og det er ingen grunn til å bruke en antikk.

Kommentarer

  • Dette fungerer med ' avconv ' nå.
  • verdt å nevne denne teknikken (med crop filter) koder videoen på nytt, se stackoverflow.com/questions/33378548/… hvis du koding betyr noe for deg
  • redigert for å endre den utdaterte -filter:v til mer oppdatert og enklere å skrive -vf . Skål!
  • Hvis du ' prøver å fjerne svarte søyler rundt videoen din (piallarbox, letterbox, windowbox etc.), bruk cropdetect først har ffmpeg utskriftsbeskjæringsparametere for deg: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Dette avlingsfilteret fungerer bra! For å bestemme avgrensningsboksen som trengs for å beskjære en video, eksporterte jeg en videoramme til et bilde med ffmpeg. Åpne deretter bildet med GIMP hvor jeg kan tegne en avgrensningsboks for området jeg ønsket å beskjære videoen, og så kan jeg få X, Y, W, H info fra pekervinduet. Spør om dette ikke er klart nok.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *