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
ochy
anger det övre vänstra hörnet på utgående rektangel
Originalbild
Original 320×240-bild
Exempel 1
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
- Ljudet stream kopieras i detta exempel, så omkodning undviks.
Exempel 2
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
ochin_h
som visas i detta första exempel. Utgångsbredden och höjden kan också användas medout_w
ochout_h
.
Exempel 3
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
ochy
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
-
Standardkodare för MP4 är
libx264
(H.264 video) ellermpeg4
(MPEG- 4 del 2-video) beroende på dinffmpeg
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örcrop
filter. Om så är fallet för dig får en modernffmpeg
. Utvecklingen är mycket aktiv och det finns ingen anledning att använda en antikvitet.
crop
filter) kodar om videon, se stackoverflow.com/questions/33378548/… om du kodning är viktig för dig-filter:v
till mer uppdaterad och enklare att skriva-vf
. Skål!cropdetect
först med ffmpeg-beskärningsparametrar för dig:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4