# 1 Aby jednocześnie zanikać wejście / wyjście audio:
ffmpeg -i clip.mp4 -vf 'fade=in:0:30,fade=out:960:30'
-af 'afade=in:st=0:d=1,afade=out:st=32:d=1'
-c:v libx264 -crf 22 -preset veryfast fadeInOut.mp4
Czasy Afade są w sekundach .
# 2 automatycznie? Nie. Ale zobacz obejście poniżej
Możesz najpierw uruchomić ffprobe, aby uzyskać czas trwania.
ffprobe -i clip.mp4 -show_entries stream=codec_type,duration -of compact=p=0:nk=1
Otrzymasz coś takiego:
video|13.556000
audio|13.816000
Następnie możesz użyć powyższego, aby umieścić swoje przejścia. Te czasy są w sekundach.
Obejście
ffmpeg -i clip.mp4 -sseof -1 -copyts -i clip.mp4 -filter_complex
"[1]fade=out:0:30[t];[0][t]overlay,fade=in:0:30[v];
anullsrc,atrim=0:2[at];[0][at]acrossfade=d=1,afade=d=1[a]"
-map "[v]" -map "[a]" -c:v libx264 -crf 22 -preset veryfast -shortest fadeInOut.mp4
FFmpeg ma sseof
opcję, która pozwala szukać danych od końca. Możemy to wykorzystać do osiągnięcia naszego celu. Tak więc podajemy dane wejściowe dwa razy, a drugi raz pochłaniamy tylko ostatnią sekundę. Mówimy FFmpeg, aby zachował znaczniki czasu, aby ffmpeg zachował pozycję czasową tej części ogona.
Stosujemy wyciszenie do tego ogona, a następnie nakładamy wynik na pełne wejście. Ponieważ są one tym samym plikiem multimedialnym, pierwszy plan całkowicie pokrywa tło, a ponieważ copyts
został zastosowany, nakładka zachodzi na odpowiednią identyczną ramkę na wejściu tła.
W przypadku dźwięku tworzymy pusty dźwięk fikcyjny o czasie trwania 2 sekundy, a następnie zastosujemy płynne przejście dźwięku z dźwięku głównego do tego dźwięku fikcyjnego. Ponieważ drugi dźwięk jest pusty, jest to w rzeczywistości wyciszenie głównego wejścia. -shortest
Dodaje opuścić części manekina i dźwięku po nastąpiło Przenikanie.