我能够从控制台中使用ffmpeg,并得到一个可以淡入淡出的文本,但我正在尝试在fluent-ffmpeg中使用alpha选项,但失败了。
这样做是可行的:
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中不受支持(我找不到它的任何文档),还是它是一个不同的关键字?
发布于 2017-10-24 06:01:54
将表达式括在引号中:
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之后)结束了过滤器参数。
https://stackoverflow.com/questions/46900392
复制相似问题