4

У меня есть довольно сложная (для меня) обработка видео:

  • получить исходное видео
  • обрезать его
  • переверните его
  • наложение с изображением: 3 с выключено, 80 с включено

Мне удалось сделать первые шаги:

ffmpeg.exe -i source.flv -vf "movie=overlay.jpg [logo]; 
           [in] crop=854:430:0:50 [crop]; [crop] hflip [flipped]; 
           [flipped][logo] overlay=0:0 [out]" 
           -c:v h264 -c:a copy output.mp4

Но я действительно не знаю, с чего начать, чтобы наложение появлялось и исчезало несколько раз во время видео ...

Я посмотрел руководство по наложению фильтров и увидел этот образец
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
Может быть, я мог бы использовать аналогичную формулу для моих целей: если остаток (t/83) <= 2, то NAN, иначе 0: 0 ... но как я могу вычислить остаток? В C # я могу использовать t% 83, но как насчет ffmpeg?
Есть ли другой способ?

1 ответ1

4

Наконец-то я нашел решение, играя с примером и читая страницу оценки выражения:

ffmpeg.exe -i source.flv -vf "movie=overlay.jpg [logo]; 
           [in] crop=854:430:0:50 [crop]; 
           [crop] hflip [flipped]; 
           [flipped][logo] overlay=x='if(lt(mod(t,83),3),NAN,0)':y=0 [out]" 
           -c:v h264 -c:a copy output.mp4

Идея состоит в том, чтобы найти остаток от t/83: если он меньше 3, то оверлей не должен отображаться, иначе да.
Надеюсь, поможет...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .