Jag har en MP4-fil med en skärminspelning som jag behöver beskära. Hur kan jag åstadkomma detta utan att använda dyra verktyg som Adobe Premier eller Final Cut? Jag föredrar ffmpeg eftersom jag har använt det tidigare.

Svar

Använd crop filter :

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

Var alternativen är som följer:

  • out_w är bredden på den utgående rektangeln
  • out_h är höjden på den utgående rektangeln
  • x och y anger det övre vänstra hörnet på utgående rektangel

Originalbild

originalbild
Original 320×240-bild

Exempel 1

80x60

Att beskära en sektion på 80 × 60, från position (200, 100):

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

Exempel 2

nedre högra kvartalet

Att beskära det nedre högra kvartalet:

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

Detta är samma som:

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

Vilket är detsamma som:

ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4 
  • Du kan hänvisa till den inmatade bildstorleken med in_w och in_h som visas i detta första exempel. Utgångsbredden och höjden kan också användas med out_w och out_h.

Exempel 3

20 pixlar uppifrån och 20 från botten

Beskär 20 pixlar uppifrån och 20 från botten:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 
  • Filtret centreras automatiskt om x och y utelämnas som i det här exemplet.

Förhandsgranska

Du kan ta en beskärning (heh heh) och förhandsgranska den live med ffplay:

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

På detta sätt kan du experimentera och justera din beskärning utan att behöva koda, visa, upprepa.

Anteckningar

  • crop filterdokumentation

  • Standardkodare för MP4 är libx264 (H.264 video) eller mpeg4 (MPEG- 4 del 2-video) beroende på din ffmpeg bygga. Se FFmpeg Wiki: H.264 Video Encoding Guide för mer info.

  • Istället för att beskära och åter- kodning, överväga att beskära vid uppspelning. Detta är möjligt med alla spelare som är värda att använda.

  • Forntida ffmpeg byggnader som används -croptop , -cropbottom, -cropleft, -cropright alternativ istället för crop filter. Om så är fallet för dig får en modern ffmpeg . Utvecklingen är mycket aktiv och det finns ingen anledning att använda en antikvitet.

Kommentarer

  • Detta fungerar med ' avconv ' nu.
  • värt att nämna denna teknik (med crop filter) kodar om videon, se stackoverflow.com/questions/33378548/… om du kodning är viktig för dig
  • redigerad för att ändra den föråldrade -filter:v till mer uppdaterad och enklare att skriva -vf . Skål!
  • Om du ' försöker ta bort svarta staplar runt din video (piallarbox, brevlåda, fönsterlåda etc.) använder du cropdetect först med ffmpeg-beskärningsparametrar för dig: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Detta beskärningsfilter fungerar bra! För att bestämma den avgränsningsruta som behövs för att beskära en video exporterade jag en videoram till en bild med ffmpeg. Öppna sedan bilden med GIMP där jag kan rita en avgränsningsruta för det område som jag ville beskära videon och sedan kan jag få informationen X, Y, W, H från pekarfönstret. Fråga om detta inte är tillräckligt tydligt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *