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
ogy
angiver det øverste venstre hjørne af outputrektangel
Originalbillede
Original 320×240 billede
Eksempel 1
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
- Lyden er streamkopieret i dette eksempel, så genkodning undgås.
Eksempel 2
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
ogin_h
som vist i dette første eksempel. Outputbredden og -højden kan også bruges medout_w
ogout_h
.
Eksempel 3
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
ogy
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
-
Standardkoder til MP4 er
libx264
(H.264 video) ellermpeg4
(MPEG- 4 Del 2-video) afhængigt af dinffmpeg
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 forcrop
filter. Hvis dette er tilfældet for dig, får en moderneffmpeg
. Udvikling er meget aktiv, og der er ingen grund til at bruge en antik.
crop
filter) genkoder videoen, se stackoverflow.com/questions/33378548/… hvis det igen kodning betyder noget for dig-filter:v
til mere opdateret og enklere at skrive-vf
. Skål!cropdetect
først skal ffmpeg udskrive beskæringsparametre til dig:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4