Próbuję dodać moje logo przez pierwsze 30 sekund w filmie z ffmpeg. Mam wideo o nazwie d1.mp4
i logo o nazwie logo.png
.
Po rozpoczęciu wideo znak wodny powinien znajdować się w lewym górnym lub prawym górnym rogu i zniknąć po 30 sekundach.
Czy możesz mi pokazać, jak to dodać?
ffmpeg -i d1.mp4 -i logo.png
pokazuje? Po prostu wprowadź to polecenie i pokaż nam, jakie są dane wyjściowe. Kiedy zadajesz pytaniaffmpeg
, zawsze powinieneś podać jak najwięcej szczegółów na temat posiadanego materiału wideo / audio, tego, co już wypróbowałeś, oraz pełnego wyjścia z wiersza poleceń wszystkiego, co próbowałeś.Odpowiedzi:
Zakłada się, że logo jest pojedynczym nieruchomym obrazem z kanałem alfa i chcesz nałożyć go na film o liczbie klatek na sekundę 30000/1001 (szybkość NTSC). Zmień,
-framerate
aby pasowało do wejściowego wideo, jeśli jest inne. Jeśli twoje logo jest filmem, pomiń-framerate 30000/1001 -loop 1
. Jeśli logo nie ma kanału alfa, dodaj go, wstawiając np.format=yuva420p,
Bezpośrednio przedfade
.Spowoduje to wyświetlenie logo w pozycji x, y 10,10 przez 30 sekund, a następnie 1 sekundowe wygaszanie.
źródło
framerate
iloop
są wymagane w tym przypadku, a nie dla prostej nakładki bez filtra zanikania?-framerate
i-loop
dla obrazu nieruchomego jest tak, że na blaknięcie będzie działać. Jeśli jest tylko jedna ramka, nie ma możliwości wygaszania w odstępie 1 sekundy. Idealnie powinna być taka sama liczba klatek na sekundę jak wideo, aby zanikanie było możliwie płynne.Używając
overlay
filtra wideo, aby dodać logo do filmu: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]
ioverlay
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ół:
Ten przykład przeniesie logo o 10 pikseli z prawej strony i 10 pikseli w dół:
main_w
odnosi się do szerokości wejścia „głównego” (tło lub[0:v]
) ioverlay_w
odnosi się do szerokości wejścia „nakładki” (logo lub[1:v]
). W tym przykładzie można to przetłumaczyć naoverlay=320-90-10:10
luboverlay=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:
Jeśli chcesz zniknąć logo, zapoznaj się z odpowiedzią mark4o .
źródło
enable=not(between'(t,30,50)')
. To pokaże nakładkę przez cały czas, ale nie w czasie 30-60 sekund.overlay
wszystkiego samodzielnie, zrobiłem to, ponieważ chciałem domyślnej pozycji lewego górnego rogu. (Więc w końcu moje flagi były po prostufilter_complex overlay
.)