ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4
Aby zrozumieć to polecenie, musisz wiedzieć, czym jest specyfikator strumienia, a przeczytanie wprowadzenia do filtrowania FFmpeg pomoże. [0:v]
odnosi się do strumienia wideo z pierwszego wejścia ( video.mp4
) i [1:v]
odnosi się do strumienia wideo z drugiego wejścia ( logo.mp4
). W ten sposób możesz określić, overlay
jakich danych wejściowych użyć. Możesz pominąć [0:v][1:v]
i overlay
nadal będzie działać, ale zaleca się, aby być jawnym i nie polegać na nieznanych domyślnych ustawieniach domyślnych.
Domyślnie logo zostanie umieszczone w lewym górnym rogu.
Użycie -codec:a copy
spowoduje przesłanie strumienia audio. To po prostu remiksuje dźwięk zamiast go ponownie kodować. Pomyśl o tym jak o „skopiuj i wklej” audio.
Przenoszenie logo
Ten przykład przeniesie logo o 10 pikseli w prawo i 10 pikseli w dół:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4
Ten przykład przeniesie logo o 10 pikseli z prawej strony i 10 pikseli w dół:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4
main_w
odnosi się do szerokości wejścia „głównego” (tło lub [0:v]
) i overlay_w
odnosi się do szerokości wejścia „nakładki” (logo lub [1:v]
). W tym przykładzie można to przetłumaczyć na overlay=320-90-10:10
lub overlay=220:10
.
Czas nakładki
Niektóre filtry obsługują edycję osi czasu, co pozwala na użycie wyrażeń arytmetycznych w celu ustalenia, kiedy należy zastosować filtr. Zobacz, ffmpeg -filters
które filtry obsługują edycję osi czasu.
Ten przykład pokazuje logo do 30 sekund:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4
Jeśli chcesz zniknąć logo, zapoznaj się z odpowiedzią mark4o .