FFmpeg накладывает изображение на видео с эффектом затухания

877
AM25

Есть немного сомнений относительно команды ffmpeg -
ffmpeg -f concat -i input.txt -loop 1 -t 8 -i inputImg.jpg -filter_complex "[1]format=rgba,fade=alpha=1:st=0:d=8,setpts=PTS+10/TB[v1];[0][v1]overlay=x=70:y=100:enable='between(t,2,10)'" -crf 22 -threads 2 -preset ultrafast output.mp4

1 - влияние цикла на производительность, если я не предоставлю -t 8и просто использую shortest=1в оверлейном фильтре - будет ли создано видео с бесконечной продолжительностью, и только при наложении будет выбрано самое короткое видео?

2- что делает setpts? - Я упомянул, -t 8- так что цикл за 8 секунд. Если я сделаю `setpts = PTS + 10 / TB ', увеличит ли это зацикленное видео до 18 секунд, когда эффект постепенного увеличения составляет от 10 до 18 секунд? что там от 0 до 10 с в зацикленном видео?

3 - как накладываются 2 видео - сливаются ли оба видео с 0-й секунды?

4 - если я хочу применить эффект затухания к изображению, которое будет наложено на мое видео, скажем, на 100-й секунде, то я должен создать зацикленное видео размером 100 с? - как это повлияет на производительность?

5- можно ли использовать frame_no для main_video [0] в looped_video [1]?

6- существует ли какой-либо эффективный способ / альтернатива для применения эффекта фейдера к изображению, например, на основе frame_sequence, fade_in из кадра 30-35?

0

1 ответ на вопрос

0
Gyan

С целью,

1- влияние цикла на производительность, если я не укажу -t 8 и просто использую самый короткий = 1 в оверлейном фильтре - будет ли создано видео с бесконечной продолжительностью, и только при наложении будет выбрано самое короткое видео?

В теории да. Но в настоящее время есть ошибка shortest=1, так что не используйте ее.

2- что делает setpts?

Это меняет метки времени. В вашей команде он добавляет 10 секунд к временным меткам, так что поток сгенерированного изображения имеет первые временные метки как 10 секунд.

3 - как накладываются 2 видео - сливаются ли оба видео с 0-й секунды?

Кадры с соответствующими временными метками перекрываются, т.е. кадр с PTS 10 секунд изображения накладывается на базовый видеокадр с PTS 10 секунд.

4 - если я хочу применить эффект затухания к изображению, которое будет наложено на мое видео, скажем, на 100-й секунде, то я должен создать зацикленное видео размером 100 с? - как это повлияет на производительность?

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

5- можно ли использовать frame_no для main_video [0] в looped_video [1]?

enableКоммутатор использует рама / метки времени от основного видео.

6- существует ли какой-либо эффективный способ / альтернатива для применения эффекта фейдера к изображению, например, на основе frame_sequence, fade_in из фрейма 30-35?

Нет, так же, как то, что вы используете. Вы можете использовать переменные, которые относятся к числу кадров для настройки начала sи продолжительностиn

Ответ 2 - так что `setpts` не влияет на длительность - меняются только метки времени? Ответ 5 - то, что я имел в виду, было frame_no потока [0] (который читается из input.txt), который будет использоваться при оценке замирания (для динамического вычисления `setpts` - я хочу использовать enable (n, 30, 35) в оверлейном фильтре и соответственно рассчитать значения для затухания)? AM25 7 лет назад 0
Ответ 6 - Использовал эту команду - `ffmpeg -f concat -i input.txt -loop 1 -t 1 -i inputImg.jpg -filter_complex" [1] format = rgba, fade = alpha = 1: s = 0: n = 9, setpts = PTS + 0 / TB [v1]; [0] [v1] оверлей = x = 70: y = 100: enable ='ween (n, 0,9) '"-crf 22-threads 2 -preset сверхбыстрый output.mp4 '- но в `s` и` n` в `fade`, вероятно, ссылаются на кадры потока [1] (looped_video), а не потока [0] (main_video, прочитанного из input.txt) - o / Здесь p команды поделился и один в вопросе разные. AM25 7 лет назад 0
* frame_no of stream [0] (который читается из input.txt) должен использоваться при оценке замирания (динамическое вычисление setpts * -> невозможно. `setpts` ссылается на поток, с которым он работает. Gyan 7 лет назад 0

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