Задать вопрос
@Dwellss

Как наложить ватермарк на видео на 20 секунде на 5 секунд?

Вот такая команда есть, она накладывает движущийся ватермарк на 20 секунде на 30 секунд.
А мне нужно, чтобы ватермарк появлялся на 20 секунде на 5 секунд и исчезал... Как поправить эту команду?

#!/bin/bash
for file in *.mp4; do
ffmpeg -y -i "$file" -vcodec libx264 -movflags +faststart -threads 0 -r 25 -g 50 -crf 25 -me_method hex -trellis 0 -bf 8 -acodec aac -strict -2 -ar 44100 -ab 128k -f mp4 -vf "movie=/home/domains/test/watermark.png [wm];[in][wm] overlay='if(gte(t,9)*lte(t,29), W-((W+w)/20)*mod(t-9,20), -w-1000)':'0' [out]" "out/$file"
done
  • Вопрос задан
  • 194 просмотра
Подписаться 2 Простой 4 комментария
Решения вопроса 1
@Dwellss Автор вопроса
В итоге вот что подошло:
ffmpeg -y -i "$file" -i watermark.png -filter_complex \ "[0:v][1:v]overlay=10:10:enable=between(t\,20\,5)" "out/$file"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
в вашем примере больше похоже на между 9 и 29 секундой:
if(gte(t,9)*lte(t,29)
время включения наложения сравнивается >= 9 секунд и <= 29

Вам же нужно, вероятно, if(gte(t,20)*lte(t,25)

И строки можно
переносить
ffmpeg \
  -y \
  -i "$file" \
  -vcodec libx264 \
  -movflags +faststart \
  -threads 0 \
  -r 25 \
  -g 50 \
  -crf 25 \
  -me_method hex \
  -trellis 0 \
  -bf 8 \
  -acodec aac \
  -strict \
  -2 \
  -ar 44100 \
  -ab 128k \
  -f mp4 \
  -vf "movie=watermark.png [wm];[in][wm] overlay='if(gte(t,9)*lte(t,29), W-((W+w)/20)*mod(t-9,20), -w-1000)':'0' [out]" \
  "out/$file"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы