我可以在控制台中使用ffmpeg
并获取文本淡入淡出,但我正在尝试使用alpha
中的fluent-ffmpeg
选项,并且失败了。
这有效:
ffmpeg -i testvideo.mp4 -filter_complex "[0:v]drawtext=fontfile=/<full-path>/Lato-Black.ttf:text='This is a test':fontsize=12:fontcolor=e82e2e:alpha='if(lt(t,1),0,if(lt(t,2),(t-1)/1,if(lt(t,4),1,if(lt(t,5),(1-(t-4))/1,0))))':x=(w-text_w)/2:y=(h-text_h)/2" outfile.mp4
在节点服务中使用时失败:
.complexFilter({
filter: 'drawtext',
options: {
fontfile: <font-path>
text: "This is a test",
fontsize: 18,
fontcolor: "ff0000",
alpha : if(lt(t,1),0,if(lt(t,2),(t-1)/1,if(lt(t,4),1,if(lt(t,5),(1-(t-4))/1,0)))),
x: 10,
y: 10
}
}, 'out')
fluent-ffmpeg失败:ffmpeg退出代码1:配置错误 复杂滤波器。参数无效
alpha
不支持fluent-ffmpeg
(我找不到任何相关文档),或者它是不同的关键字?
答案 0 :(得分:0)
将表达式括在引号中:
alpha : "if(lt(t,1),0,if(lt(t,2),(t-1)/1,if(lt(t,4),1,if(lt(t,5),(1-(t-4))/1,0))))",
否则ffmpeg会认为第一个逗号(在"if(lt(t
之后)结束过滤器参数。