如何使用FFmpeg为视频添加带透视效果的文字
实现FFmpeg为视频添加带透视效果的文字
要实现仅文字带透视效果,核心是先单独生成带文字的透明图层,对该图层应用透视滤镜,最后将处理后的文字层叠加到原视频上,避免直接对原视频应用perspective滤镜。以下是具体实现步骤和命令:
核心命令示例
ffmpeg -i input.mp4 -filter_complex \ "[0:v]drawtext=text='自定义文字':fontsize=50:fontcolor=white:x=0:y=0:alpha=1,format=rgba[text_layer]; \ [text_layer]perspective=x0=0:y0=0:x1=w:y1=0:x2=0:y2=h:x3=w-60:y3=h-30:interpolation=linear[persp_text]; \ [0:v][persp_text]overlay=x=80:y=150" \ -c:a copy output.mp4
各部分参数解释
- drawtext 生成文字层:创建带透明通道(
format=rgba)的文字图层,text为你要添加的内容,fontsize/fontcolor控制文字样式,x=0:y=0是文字在自身图层内的位置。 - perspective 应用透视:仅对文字图层
[text_layer]生效,通过调整四个角的坐标(x0,y0左上角、x1,y1右上角、x2,y2左下角、x3,y3右下角)实现透视效果。示例中x3=w-60:y3=h-30表示将右下角向内偏移60像素(水平)和30像素(垂直),你可以根据需求修改数值匹配目标透视效果。 - overlay 叠加图层:将处理好的透视文字层
[persp_text]叠加到原视频[0:v]上,x=80:y=150控制文字在原视频中的最终位置。
调整技巧
- 若要贴合示例图的透视效果,可尝试修改
perspective的其他角坐标,比如设置x1=w-20:y1=10让右上角轻微偏移。 - 如果需要给文字加边框或阴影,可在
drawtext中添加borderw=2:bordercolor=black等参数增强视觉效果。
内容的提问来源于stack exchange,提问作者Facundo
相关产品推荐
相关产品推荐

