Я пытаюсь объединить 5 изображений и создать мигающее видео после их объединения.Я успешно применил для них эффект постепенного исчезновения. FFMPEG все еще довольно новый для меня.

Вот команда, которую я выполнил:

"-loop 1 -i "+path+"images_001.jpg " +
"-loop 1 -i "+path+"images_002.jpg " +
"-loop 1 -i "+path+"images_003.jpg " +
"-loop 1 -i "+path+"images_004.jpg " +
"-loop 1 -i "+path+"images_005.jpg " +
"-filter_complex " +
"[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];" +
"[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];" +
"[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];" +
"[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];" +
"[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v]concat=n=9:v=1:a=0,format=yuv420p[v] -map [v] "+path+"out.mp4"

При выполнении этой команды процесс продолжается вечно. Вот мой скриншот этой вещи:

Я знаю, что мне не хватает чего-то глупого; Поскольку я новичок в ffmpeg было бы замечательно, если бы я мог получить некоторое представление о том, где я иду не так, как надо. Что мне не хватает?

2 ответа2

2

После каждого -loop 1 вставьте -t x где x - продолжительность в секундах.

0

Ваше выражение для смеси не имеет смысла для меня. Что ты хочешь делать? Blend делает что-то подобное для каждого пикселя: пиксельный компонент = функция (пиксельный компонент входа A, пиксельный компонент входа B). Так что ваша функция должна делать? Это может сделать (A + B) / 2, что очень простой случай ....

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