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 i y określ lewy górny róg prostokąt wyjściowy

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 
  • W tym przykładzie dźwięk to strumień , więc unika się ponownego kodowania.

Przykład 2

prawy dolny kwartał

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 i in_h, jak pokazano w pierwszym przykładzie. Szerokość i wysokość danych wyjściowych mogą być również używane z out_w i 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 wyśrodkuje kadr, jeśli x i y 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

  • crop dokumentacja filtru

  • Domyślny koder dla MP4 to libx264 (wideo H.264) lub mpeg4 (MPEG- 4 część 2 wideo) w zależności od Twojego ffmpeg 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 zamiast crop filtr. Jeśli tak jest w Twoim przypadku, zdobądź nowoczesny ffmpeg . Rozwój jest bardzo aktywny i nie ma powodu, aby używać antykwariatu.

Komentarze

  • Działa z ' avconv ' teraz.
  • warto wspomnieć o tej technice (z crop filter) ponownie koduje wideo, zobacz stackoverflow.com/questions/33378548/… , jeśli ponownie kodowanie ma dla Ciebie znaczenie
  • edytowane w celu zmiany nieaktualnego -filter:v na bardziej aktualne i prostsze do wpisania -vf . Pozdrawiam!
  • Jeśli ' próbujesz usunąć czarne paski wokół swojego filmu (piallarbox, letterbox, windowbox itp.) Użyj cropdetect najpierw, aby mieć parametry przycinania wydruku ffmpeg: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Ten filtr przycinania działa świetnie! Aby określić obwiednię potrzebną do przycięcia wideo, wyeksportowałem klatkę wideo do obrazu za pomocą ffmpeg. Następnie otwórz obraz za pomocą GIMP, gdzie mogę narysować obwiednię dla obszaru, który chciałem przyciąć wideo, a następnie mogę uzyskać informacje o X, Y, W, H z okna wskaźnika. Zapytaj, czy to nie jest wystarczająco jasne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *