0

我可以从控制台使用并ffmpeg获取淡入淡出的文本,但我正在尝试使用.alphafluent-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(我找不到任何文档),或者它是一个不同的关键字?

4

1 回答 1

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)结束了过滤器参数。

于 2017-10-24T06:01:54.880 回答