Следующее должно в основном иметь изображение, появляющееся в кадре 438, а затем то же самое изображение перемещается в другую позицию в кадре 339, а затем в основном исчезает для остальной части видео.
ffmpeg -i C:\src\assets\video\base.mp4 -r 25 -i C:\card.png -y \
-filter_complex [1:v]setpts=PTS-STARTPTS+(1/TB)[1v]; \
[0:v][1v]overlay=x=0:y=0:enable='between(t,438/25,439/25)'[1v]; \
[0:v][1v]overlay=x=300:y=300:enable='between(t,439/25,440/25)'[2v]; \
[1v][2v]concat=n=2:v=1:a=0[out] -map [out] -map 0:a -ss 17 C:\temp\j7kthb0v\composit.mp4
Кажется, я не могу правильно выполнить команду или вывести что-либо похожее на то, что мне нужно.
Я знаю, что я близок, я могу наложить один кадр, но не могу больше.
Использовать
ffmpeg -i C:\src\assets\video\base.mp4 -i C:\card.png -y \
-filter_complex "[0:v][1:v]overlay=x='if(eq(n,439),300,0)':y='if(eq(n,439),300,0)':enable='eq(n,438)+eq(n,439)'[out]" \
-map [out] -map 0:a -ss 17 C:\temp\j7kthb0v\composit.mp4
Вам может понадобиться избежать запятых в фильтрах в зависимости от вашей оболочки, т.е. n,438
->n\,438
Шеннон Хочкинс
Шеннон Хочкинс
Гьян
x='0*eq(n,438)+300*eq(n,439)+X*eq(n,567)+...'
Шеннон Хочкинс
overlay=x='( 605 + -0.8023952095808383 * n)':y='( 406 + -0.4365269461077843 * n)':enable='between(t,438/25,605/25)'
, означает ли это, что n будет равно 0 и будет увеличиваться для каждого видимого кадра? (605 - 438)Гьян
Шеннон Хочкинс
Гьян
n
кадра нет. Первый кадр n = 0.Шеннон Хочкинс
Гьян
Шеннон Хочкинс
zoompan=z='if(gte(in,438),min(pzoom-0.04,0.43),1)':d=1
Гьян
Шеннон Хочкинс
Шеннон Хочкинс
Шеннон Хочкинс
Гьян
zoom
величину масштабирования, если входная ширина равна 100, тогда масштабирование = 2 обрезает окно шириной 50 пикселей. масштабирование не может быть ниже 1. Вы должны дополнить кадр объекта дополнительными пикселями (которые могут быть прозрачными), а затем уменьшить масштаб этого дополненного кадра.Шеннон Хочкинс
Гьян
Шеннон Хочкинс