Mam plik MP4 z nagraniem ekranu, który muszę przyciąć. Jak mogę to osiągnąć bez używania drogich narzędzi, takich jak Adobe Premier lub Final Cut? Wolę ffmpeg
, ponieważ używałem go wcześniej.
Odpowiedź
Użyj crop
filtr :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
Gdzie opcje są następujące:
-
out_w
to szerokość wyjściowego prostokąta -
out_h
to wysokość prostokąta wyjściowego -
x
iy
określ lewy górny róg prostokąt wyjściowy
Oryginalny obraz
Oryginalny obraz 320 x 240
Przykład 1
Aby przyciąć sekcję 80 × 60, zaczynając od pozycji (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
- W tym przykładzie dźwięk to strumień , więc unika się ponownego kodowania.
Przykład 2
Aby przyciąć prawy dolny kwartał:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
To jest to samo co:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
Co jest tym samym, co:
ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4
- Do rozmiaru obrazu wejściowego można odwołać się za pomocą
in_w
iin_h
, jak pokazano w pierwszym przykładzie. Szerokość i wysokość danych wyjściowych mogą być również używane zout_w
iout_h
.
Przykład 3
Przytnij 20 pikseli od góry i 20 od dołu:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
- Filtr automatycznie wyśrodkuje kadr, jeśli
x
iy
są pomijane, tak jak w tym przykładzie.
Podgląd
Możesz pobrać kadr (heh heh) i wyświetlić go na żywo za pomocą ffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
W ten sposób możesz eksperymentować i dostosowywać kadrowanie bez konieczności kodowania, przeglądania i powtarzania.
Uwagi
-
Domyślny koder dla MP4 to
libx264
(wideo H.264) lubmpeg4
(MPEG- 4 część 2 wideo) w zależności od Twojegoffmpeg
build. Zobacz Wiki FFmpeg: Przewodnik po kodowaniu wideo H.264 , aby uzyskać więcej informacji. -
Zamiast przycinania i zmieniania kodowanie, rozważ przycinanie podczas odtwarzania. Jest to możliwe z każdym odtwarzaczem, którego warto używać.
-
Starożytne
ffmpeg
kompilacje używane-croptop
,-cropbottom
,-cropleft
,-cropright
zamiastcrop
filtr. Jeśli tak jest w Twoim przypadku, zdobądź nowoczesnyffmpeg
. Rozwój jest bardzo aktywny i nie ma powodu, aby używać antykwariatu.
crop
filter) ponownie koduje wideo, zobacz stackoverflow.com/questions/33378548/… , jeśli ponownie kodowanie ma dla Ciebie znaczenie-filter:v
na bardziej aktualne i prostsze do wpisania-vf
. Pozdrawiam!cropdetect
najpierw, aby mieć parametry przycinania wydruku ffmpeg:ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4