Jeg har en MP4-fil med en skærmoptagelse, som jeg skal beskære. Hvordan kan jeg opnå dette uden at bruge dyre værktøjer som Adobe Premier eller Final Cut? Jeg foretrækker ffmpeg fordi jeg har brugt det før.

Svar

Brug crop filter :

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

Hvor indstillingerne er som følger:

  • out_w er bredden på outputrektanglet
  • out_h er højden på outputrektanglet
  • x og y angiver det øverste venstre hjørne af outputrektangel

Originalbillede

originalbillede
Original 320×240 billede

Eksempel 1

80x60

At beskære en sektion på 80 × 60 startende fra position (200, 100):

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

Eksempel 2

nederste højre kvartal

Sådan beskæres nederste højre 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 henvise til inputbilledstørrelsen med in_w og in_h som vist i dette første eksempel. Outputbredden og -højden kan også bruges med out_w og out_h.

Eksempel 3

20 pixels fra toppen og 20 fra bunden

Beskær 20 pixels fra toppen og 20 fra bunden:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 
  • Filteret centrerer automatisk afgrøden, hvis x og y udelades som i dette eksempel.

Previewing

Du kan tage en afgrøde (heh heh) og få vist den live med ffplay:

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

På denne måde kan du eksperimentere og justere din beskæring uden behov for at kode, se, gentage.

Noter

  • crop filterdokumentation

  • Standardkoder til MP4 er libx264 (H.264 video) eller mpeg4 (MPEG- 4 Del 2-video) afhængigt af din ffmpeg build. Se FFmpeg Wiki: H.264 Video Encoding Guide for mere info.

  • I stedet for at beskære og gentage kodning, overvej at beskære ved afspilning. Dette er muligt med enhver spiller, der er værd at bruge.

  • Gamle ffmpeg brugte builds -croptop , -cropbottom, -cropleft, -cropright i stedet for crop filter. Hvis dette er tilfældet for dig, får en moderne ffmpeg . Udvikling er meget aktiv, og der er ingen grund til at bruge en antik.

Kommentarer

  • Dette fungerer med ' avconv ' nu.
  • værd at nævne denne teknik (med crop filter) genkoder videoen, se stackoverflow.com/questions/33378548/… hvis det igen kodning betyder noget for dig
  • redigeret for at ændre den forældede -filter:v til mere opdateret og enklere at skrive -vf . Skål!
  • Hvis du ' forsøger at fjerne sorte bjælker omkring din video (piallarbox, postkasse, vindueskasse osv.), Skal du bruge cropdetect først skal ffmpeg udskrive beskæringsparametre til dig: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Dette beskæringsfilter fungerer godt! For at bestemme det afgrænsningsfelt, der er nødvendigt for at beskære en video, eksporterede jeg en videoramme til et billede med ffmpeg. Åbn derefter billedet med GIMP, hvor jeg kan tegne et afgrænsningsfelt for det område, jeg ville beskære videoen, og så kan jeg få X, Y, W, H info fra pegevinduet. Spørg, om dette ikke er klart nok.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *