Jak mogę przyciąć wideo za pomocą ffmpeg?


172

Mam plik MP4 z nagraniem ekranu, który muszę przyciąć. Jak mogę to osiągnąć bez użycia drogich narzędzi, takich jak Adobe Premier lub Final Cut? Wolę, ffmpegponieważ użyłem go wcześniej.

Odpowiedzi:


264

Użyj cropfiltra :

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ść prostokąta wyjściowego
  • out_h to wysokość prostokąta wyjściowego
  • xi yokreśl lewy górny róg prostokąta wyjściowego

Oryginalny obraz

oryginalny obraz
Oryginalny obraz 320 x 240

Przykład 1

80x60

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

Przykład 2

dolna prawa ćwiartka

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

Który jest taki sam jak:

ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
  • Możesz odwołać się do rozmiaru obrazu wejściowego za pomocą in_wi in_hjak pokazano w tym pierwszym przykładzie. Szerokość wyjściowa i wysokość mogą być również używane z out_wi out_h.

Przykład 3

20 pikseli od góry i 20 od dołu

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 wycentrować w uprawach xi ysą pomijane, tak jak w tym przykładzie.

Podgląd

Możesz pobrać uprawę (heh heh) i obejrzeć ją 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, powtarzania.

Notatki

  • crop filtruj dokumentację

  • Domyślny koder dla MP4 to libx264(wideo H.264) lub mpeg4(wideo MPEG-4 część 2) w zależności od ffmpegwersji. Aby uzyskać więcej informacji, zobacz FFmpeg Wiki: Podręcznik kodowania wideo H.264 .

  • Zamiast przycinania i ponownego kodowania, rozważ przycinanie podczas odtwarzania. Jest to możliwe z każdym graczem, z którego warto skorzystać.

  • Starożytny ffmpegbuduje używany -croptop, -cropbottom, -cropleft, -croprightopcje zamiast tego cropfiltra. Jeśli tak jest w Twoim przypadku, zdobądź nowoczesnośćffmpeg . Rozwój jest bardzo aktywny i nie ma powodu, aby używać antyków.


2
Działa to teraz z „avconv”.
Joce

Mam 1923x1080 i chcę 1920x1080. To wyróżnienie próbowałem, /Users/kukodajanos/Workspace/ffmpeg -i /Users/kukodajanos/Desktop/video_640x480-2.mp4 -filter:v "crop=1920:1080:0:0" -c:a copy /Users/kukodajanos/Desktop/video_640x480-4.mp4ale oryginalny film jest zwracany.
János

@Joce JFYI avconv jest częścią libav - rozwidlenia ffmpeg
andrybak

1
warto wspomnieć o tej technice (z cropfiltrem) ponownie koduje wideo, patrz stackoverflow.com/questions/33378548/... jeśli ponowne kodowanie ma dla Ciebie znaczenie
abernier

1
edytowane w celu zmiany przestarzałych -filter:vna bardziej aktualne i prostsze w pisaniu -vf. Twoje zdrowie!
Elder Geek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.