Skaluj znak wodny, aby dopasować go do różnych rozmiarów wideo


-1

Mam znak wodny.png, który został stworzony do nakładania filmów o szerokości 1280. Gdy używam wideo w innym rozmiarze, znak wodny jest całkowicie nieproporcjonalny.

Dlatego szukam pojedynczego polecenia, które może skalować znak wodny do oryginalnego rozmiaru wideo. Nie chcę zmieniać rozmiaru oryginalnego wideo.

To jest obecny format roboczy, którego używam, który działa dobrze z filmami o szerokości 1280. (znak wodny umieszczony w lewym dolnym rogu)

-i video.mp4 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=1:main_h-overlay_h-1:enable=not(between'(t,30,210)') [out]"

Na marginesie, ponieważ znak wodny jest po prostu 15-literowym słowem, mógłbym również użyć tekstu w poleceniu, jeśli dzięki temu rozwiązanie byłoby mniej skomplikowane.


Jaka jest rozdzielczość twojego znaku wodnego? I czy wszystkie filmy wideo 16: 9?
Gyan

Cześć, dzięki za pomoc! Znak wodny = 400 x 48. 90% filmów ma format 16: 9, więc można je wykorzystać jako standard.
razz

Odpowiedzi:


0

Możesz użyć scale2reffiltru, który może zmienić rozmiar jednego wejścia, aby dopasować wejście referencyjne.

Szablon jest

-i video.mp4 -filter_complex "movie=watermark.png[watermark];[watermark][0]scale2ref=400*iw/1280:48*iw/1280[wm][v];[wm]setsar=1[logo];[v][logo] overlay=1:main_h-overlay_h-1:enable=not(between'(t,30,210)') [out]"

Otrzymuję błąd „Ten filtr nakłada się na filtr„ Brak nakładki filtru ”?
razz

Nie pokazałeś swojej pełnej komendy, ale powinieneś ją mieć -map [out].
Gyan

Pracował! -i in.mp4 -filter_complex "movie=logo.png[watermark];[watermark][0]scale2ref=400*iw/1280:48*iw/1280[wm][v];[wm]setsar=1[logo];[v][logo] overlay=1:main_h-overlay_h-1:enable=not(between'(t,30,210)')" out.mp4 Teraz próbuje uruchomić go za pomocą automatycznego skryptu za pomocą następującego polecenia (używanego w cms) $q = "$ffmpeg_path -i \"".$content_path."/".$row['orig_filename']."\" $ffmpeg_command \"$video_path/$subdir".$row['filename']."\""; Część $ ffmpeg_command jest dodawana do cms i wykonywana, jednak tutaj się nie udaje. Nie mogę zlokalizować, co robię źle ze skryptem
razz

Jaki jest ciąg $ ffmpeg_command?
Gyan

to jest część, do której dodałem polecenie. W tym przypadku -filter_complex "movie=/logo.png[watermark];[watermark][0]scale2ref=400*iw/1280:48*iw/1280[wm][v];[wm]setsar=1[logo];[v][logo] overlay=1:main_h-overlay_h-1:enable=not(between'(t,30,210)')[out]" Coś poszło nie tak z scale2ref, ponieważ kiedy używam poniższego polecenia (bez scale2ref) wszystko działa idealnie. -vf "movie=logo.png [watermark]; [in][watermark] overlay=1:main_h-overlay_h-1:enable=not(between'(t,30,210)') [out]"
razz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.