водяной знак на видео, например водяной знак tiktok, с использованием ffmpeg

Я хочу добавить водяной знак на видео, используя ffmpeg, например видео tiktok, означает водяной знак с именем логотипа и идентификатором пользователя и с отражением по диагонали каждые 5 секунд или с таким же интервалом времени, для простого водяного знака я использую следующую команду. Пожалуйста, помогите

ffmpeg -i video.mp4 -i watermark.png -filter_complex "overlay=5:5" out.mp4


person Pythonsguru    schedule 30.11.2020    source источник
comment
...С отражением по диагонали каждые 5 секунд что это вообще значит? Предоставьте ссылку на видео-пример того, чего вы хотите достичь. Если он анимирован, может быть проще сначала создать GIF, а затем использовать его в качестве (циклического) водяного знака.   -  person VC.One    schedule 30.11.2020
comment
используйте overlay='5*mod(n,150)':'3*mod(n,150)', где n — номер кадра, 1505sec * 30fps, играйте с цифрами   -  person Баяр Гончикжапов    schedule 30.11.2020
comment
@VC.One, посмотрите эту ссылку на видео youtube.com/watch?v=in46zjhGyk0 для водяного знака и, если возможно, дайте мне лучшие предложения, как я могу реализовать?   -  person Pythonsguru    schedule 01.12.2020
comment
@БаярГончикжапов спасибо за ваше предложение, но мне нужно youtube.com/watch?v=in46zjhGyk0 такой водяной знак   -  person Pythonsguru    schedule 01.12.2020
comment
может это: overlay=x='if(lt(mod(t,6),3),W-w-W*10/100,W*10/100)': y='if(lt(mod(t+12,6),3),H-h-H*5/100,H*5/100)'?   -  person Баяр Гончикжапов    schedule 01.12.2020


Ответы (1)


Цикл слева направо и сверху вниз:

ffmpeg -i video.mp4 -i watermark.png -filter_complex \
 "[0:v][1:v]overlay=x='if(lt(mod(t,10),5),10,W-w-10)':y='if(lt(mod(t,10),5),10,H-h-10)'" \
 -codec:a copy out.mp4

Петля сверху справа и снизу слева:

ffmpeg -i video.mp4 -i watermark.png -filter_complex \
 "[0:v][1:v]overlay=x='if(lt(mod(t,10),5),W-w-10,10)':y='if(lt(mod(t,10),5),10,H-h-10)'" \ 
 -codec:a copy out.mp4

Идея очень проста

  • Возьмите каждые 10 секунд продолжительности, получите остаток секунды, т.е. мод (t, 10)
  • если sec ‹ 5, установить верхнее положение, иначе нижнее положение
person Ramesh Jangama    schedule 03.02.2021