5

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

fademe.png <- верхний оверлей, должен исчезать после некоторых кадров

overlay.png <- второе наложение, всегда видимое

movie.mov <- фильм как нижний слой

Я использую этот код для создания .mov в формате PNG из оверлеев:

ffmpeg -y -loop 1 -i fademe.png -loop 1 -i overlay.png -filter_complex "[0:0]fade=out:25:25[fad];[1:0][fad] overlay" -vframes 55 -vcodec png overlay.mov

Затем я использую ffmbc для размещения overlay.mov поверх другого видео.

(Я использую ffmbc, потому что конечный результат будет ProRes4444)

ffmbc -y -threads 0 -i movie.mov -vf "movie=overlay.mov [watermark]; [in][watermark] overlay [out]"  -vcodec libx264 faded.mp4

Выходное видео выглядит хорошо до тех пор, пока не начнется затухание, а fademe.png [fad] видимому, потускнеет до белого и делает некоторые странные вещи с цветами ниже, пока не исчезнет.

Когда я меняю порядок в последнем overlay с оверлея [1:0][fad] overlay [fad][1:0] overlay это выглядит так:

ffmpeg -y -loop 1 -i fademe.png -loop 1 -i overlay.png -filter_complex "[0:0]fade=out:25:25[fad];[fad][1:0] overlay" -vframes 55 -vcodec png overlay.mov

выцветание выглядит правильно, но overlay.png [1:0] не должен быть самым верхним слоем.

Я думаю, что что-то не так происходит с альфа-каналом с первой попытки.

Любые предложения, как решить эту проблему?

2 ответа2

7

Не должно быть необходимости использовать две команды и создавать промежуточный файл с альфа-каналом. Это должна сделать одна команда с 3 входами, 2 наложенными фильтрами и фильтром затухания с alpha=1 :

ffmpeg -y -i movie.mov -loop 1 -i overlay.png -loop 1 -i fademe.png \
-filter_complex '[0:v][1:v] overlay [V1]; \
[2:v] fade=out:25:25:alpha=1 [V2]; [V1][V2] overlay' \
faded.mp4
1

Я думаю, что нашел решение:

Сначала я создал промежуточный фильм с исчезающим логотипом

ffmpeg -y -loop 1  -i fademe.png -filter_complex "fade=out:25:25" -vframes 55 -vcodec png fademe.mov

тогда я использовал эту команду с ffmbc

ffmbc -i movie.mov -vf "movie=overlay.png [over]; movie=fademe.mov [fade]; [in][over] overlay [inter]; [inter][fade] overlay [out]" -vcodec libx264 out.mp4

...Эврика !!!

Эмблема, сидящая сверху композиции, исчезает красиво и гладко!

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