Zamień ramki początkowe na ramki o określonej godzinie na FFmpeg

0

Edytuję wideo prezentacji (zrzut ekranu pokazu slajdów, więc treść rzadko się zmienia). Film powinien być podzielony na rozdziały.

Problem polega na tym, że mówca rozpoczyna rozmowę w następnym rozdziale, ale przez 2-3 sekundy pokazuje stary slajd, a nawet przewija slajdy w poszukiwaniu właściwego.

Chciałbym pozostawić dźwięk bez zmian, ale zastąp klatki początkowe (od 0 do 3 sekund) klatkami początkowymi w 3 sekundy filmu.

Mógłbym to zrobić w edytorze wizualnym, dzieląc kanały i zastępując wideo, ale chciałbym to zautomatyzować.

Jak mogę osiągnąć swój cel dzięki FFmpeg?

techraf
źródło

Odpowiedzi:

1

To jest tak proste * jak

ffmpeg -i in.mp4 -vf trim=X -c:a copy out.mp4

X jest znacznikiem czasu ramki, którą chcesz sklonować na początku. Wszystkie ramki od 0 do X są zastępowane tą ramką.

* dotyczy formatów wyjściowych takich jak MP4, gdzie ffmpeg zakłada stałą częstotliwość klatek. Do multipleksowania ze zmienną liczbą klatek, jak Matroska, użyj

ffmpeg -i in.mp4 -vf trim=X,setpts='if(eq(N,0),0,PTS)' -c:a copy out.mkv
Gyan
źródło