Usuń górne i dolne czarne paski wideo .mp4 za pomocą ffmpeg

23

Jestem nowy w ffmpeg i słyszałem, że ma filtr dla czerni. Chcę usunąć czarne paski na górze i na dole wideo, aby wideo zostało przycięte do pozostałego wideo bez czarnych pasków. Dzięki:)


źródło
Windows? Zainstaluj WinFF. Pozwoli ci wpisać wartości, które chcesz przyciąć za pomocą GUI ...
Kinnectus,

Odpowiedzi:

40

FFmpeg wykrywanie kadrowania i filtry kadrowania

1. Uzyskaj parametry uprawy

cropdetect może być użyty do podania parametrów filtru przycinania . W tym przykładzie pierwsze 90 sekund jest pomijane i przetwarzanych jest 10 ramek:

$ ffmpeg -ss 90 -i input.mp4 -vframes 10 -vf cropdetect -f null -
...
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:215 t:0.215000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:257 t:0.257000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:299 t:0.299000 crop=1280:720:0:0

Więc zgodnie z wykrywaniem roślin możemy użyć crop=1280:720:0:0.

2. Podgląd za pomocą ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4

3. Ponownie zakoduj przy użyciu filtra upraw

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4

W tym przykładzie dźwięk jest po prostu kopiowany strumieniowo (ponownie zmiksowany), ponieważ prawdopodobnie nie trzeba go ponownie kodować.

Zobacz także


Przytnij podczas odtwarzania

Jak widzieliśmy powyżej na ffplayprzykładzie, niektóre odtwarzacze pozwalają przycinać podczas odtwarzania. Ma to tę zaletę, że:

  • Natychmiastowa satysfakcja; nie ma potrzeby ponownego kodowania
  • Jakość zostaje zachowana
Llogan
źródło
Przepraszam, ale jestem nowy w ffmpeg i nie rozumiem, jak usunąć czarne paski na górze i na dole i zmienić rozmiar wideo do pozostałego rozmiaru bez czarnych pasków.
1
Czy istnieje automatyczny sposób na usunięcie czarnych pasów lub zawsze muszę ręcznie stosować wartości przycięcia?
1
@rexhin Kiedy uruchomisz cropdetect, zrzuci on kilka informacji na wyjście konsoli, jak pokazano powyżej. Daje dosłownie rzeczywiste parametry upraw, których należy użyć. Możesz to zautomatyzować za pomocą skryptów.
llogan
Wow, niesamowite, zadziałało. Ale gdzie umieściliśmy filtr dla czerni? Również jakie są pozostałe dwa parametry w uprawie = 1280: 720: 0: 24
Usunął górny czarny pasek, ale pozostawił mały czarny pasek na dole. Dlaczego się to stało?
1

Odpowiedź @ LordNeckbearda jest świetna. W większości przypadków poleciłbym to.

ffplay działał świetnie i dobrze wyświetlał podgląd, ale wersja ffmpeg, której używałem, zmagała się z dźwiękiem z tego wideo, którego używałem.

st:1 error, non monotone timestamps 

Skończyło się na tym, że mam problem z zaproponowaną odpowiedzią zarówno z brakiem obsługi -c:aw wersji, którą uruchomiłem, jak i z problemem z konwersją szybkości transmisji bitów w używanym przeze mnie wideo.

Uwaga: -c:amożna zastąpić:-acodec

Najprostszym darmowym rozwiązaniem, jakie znalazłem, było użycie hamulca ręcznego.

To automatyczne przycinanie usunęło czarne paski bez większych problemów.

Mam nadzieję, że to pomaga.

phyatt
źródło