Ik heb een MP4-bestand van een schermopname die ik moet bijsnijden. Hoe kan ik dit bereiken zonder dure tools zoals Adobe Premier of Final Cut te gebruiken? Ik geef de voorkeur aan ffmpeg
omdat ik het eerder heb gebruikt.
Antwoord
Gebruik de crop
filter :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
Waar de opties zijn als volgt:
-
out_w
is de breedte van de uitvoerrechthoek -
out_h
is de hoogte van de uitvoerrechthoek -
x
eny
specificeren de linkerbovenhoek van de uitvoerrechthoek
Originele afbeelding
Originele afbeelding van 320×240
Voorbeeld 1
Om een 80 × 60 sectie bij te snijden, beginnend vanaf positie (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
- De audio is in dit voorbeeld stream gekopieerd , dus hercodering wordt vermeden.
Voorbeeld 2
Om het kwartaal rechtsonder bij te snijden:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
Dit is hetzelfde als:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
Wat hetzelfde is als:
ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4
- Je kunt naar de grootte van de ingevoerde afbeelding verwijzen met
in_w
enin_h
zoals getoond in dit eerste voorbeeld. De uitvoerbreedte en -hoogte kunnen ook worden gebruikt metout_w
enout_h
.
Voorbeeld 3
Snijd 20 pixels vanaf de bovenkant en 20 vanaf de onderkant bij:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
- Het filter centreert automatisch de uitsnede als
x
eny
worden weggelaten, zoals in dit voorbeeld.
Voorbeeldweergave
U kunt een uitsnede nemen (heh heh) en deze live bekijken met ffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
Op deze manier kunt u experimenteren en uw bijsnijden aanpassen zonder dat u hoeft te coderen, bekijken en herhalen.
Notities
-
Standaard encoder voor MP4 is
libx264
(H.264-video) ofmpeg4
(MPEG- 4 deel 2 video) afhankelijk van jeffmpeg
build. Zie FFmpeg Wiki: H.264 Video Encoding Guide voor meer informatie. -
In plaats van bijsnijden en opnieuw codering, overweeg bij het afspelen bij te snijden. Dit is mogelijk met elke speler die het waard is om te gebruiken.
-
Ancient
ffmpeg
builds gebruikt-croptop
,-cropbottom
,-cropleft
,-cropright
opties in plaats van decrop
filter. Als dit bij u het geval is, haal dan een moderneffmpeg
op. Ontwikkeling is erg actief en er is geen reden om antiek te gebruiken.
crop
filter) codeert de video opnieuw, zie stackoverflow.com/questions/33378548/… indien opnieuw codering is belangrijk voor u-filter:v
te wijzigen in de meer up-to-date en eenvoudiger te typen-vf
. Proost!cropdetect
die als eerste ffmpeg-bijsnijdparameters voor u heeft:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4