You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ffmpeg filter_complex中为视频网格添加带淡入淡出的定时文字

问题场景

我正在使用以下FFmpeg filter_complex 命令生成4K视频网格:

ffmpeg
     -i v_nimble_guardian.mkv -i macko_nimble_guardian.mkv -i ghost_nimble_guardian_1.mp4 -i nano_nimble_guardian.mkv
     -filter_complex "
         nullsrc=size=3840x2160 [base];
         [0:v] trim=start=39.117000,setpts=PTS-STARTPTS, scale=1920x1080 [upperleft];
         [1:v] trim=start=40.483000,setpts=PTS-STARTPTS, scale=1920x1080 [upperright];
         [2:v] trim=start=32.416471,setpts=PTS-STARTPTS, scale=1920x1080 [lowerleft];
         [3:v] trim=start=28.100000,setpts=PTS-STARTPTS, scale=1920x1080 [lowerright];
         [3:a] atrim=start=28.100000,asetpts=PTS-STARTPTS[outa];
         [base][upperleft] overlay=shortest=1 [tmp1];
         [tmp1][upperright] overlay=shortest=1:x=1920 [tmp2];
         [tmp2][lowerleft] overlay=shortest=1:y=1080 [tmp3];
         [tmp3][lowerright] overlay=shortest=1:x=1920:y=1080[v]
     "
     -map "[v]" -map "[outa]" -c:v libx264 -crf 17 -shortest -t 880 output4k.mkv

我希望为该视频网格添加一段文字,要求文字在第10秒淡入,持续显示30秒后淡出。尝试了以下命令:

ffmpeg
     -i v.mkv -i macko_nimble_guardian.mkv -i ghost_nimble_guardian_subtle_arrow_1.mp4 -i nano_nimble_guardian.mkv
     -filter_complex "
         nullsrc=size=1920x1080 [base];
         drawtext=text='Summer Video':enable='between(t,10,30)'[fg];
         [0:v] trim=start=39.117000,setpts=PTS-STARTPTS, scale=960x540 [upperleft];
         [1:v] trim=start=40.483000,setpts=PTS-STARTPTS, scale=960x540 [upperright];
         [2:v] trim=start=32.416471,setpts=PTS-STARTPTS, scale=960x540 [lowerleft];
         [3:v] trim=start=28.100000,setpts=PTS-STARTPTS, scale=960x540 [lowerright];
         [3:a] atrim=start=28.100000,asetpts=PTS-STARTPTS[outa];
         [base][upperleft] overlay=shortest=1 [tmp1];
         [tmp1][upperright] overlay=shortest=1:x=960 [tmp2];
         [tmp2][lowerleft] overlay=shortest=1:y=540 [tmp3];
         [tmp3][lowerright] overlay=shortest=1:x=960:y=540[v]
     "
     -map "[v]" -map "[outa]" -c:v libx264 -shortest -t '30' output2.mkv

但出现错误:

[Parsed_drawtext_1 @ 0x600002bdc420] Using "/System/Library/Fonts/Supplemental/Verdana.ttf"
Filter drawtext:default has an unconnected output
错误原因

你创建的drawtext滤镜输出[fg]没有和后续的滤镜链连接,FFmpeg不允许存在未连接的滤镜输出节点,因此报错。另外原命令里的enable='between(t,10,30)'只能控制文字显示时间段,无法实现淡入淡出效果,需要额外通过透明度表达式实现。

正确实现命令

以下是基于你原始4K网格需求的完整命令,实现文字10秒开始淡入(1秒完成淡入)、显示到40秒后开始淡出(1秒完成淡出),总显示时长30秒:

ffmpeg
     -i v_nimble_guardian.mkv -i macko_nimble_guardian.mkv -i ghost_nimble_guardian_1.mp4 -i nano_nimble_guardian.mkv
     -filter_complex "
         nullsrc=size=3840x2160 [base];
         [0:v] trim=start=39.117000,setpts=PTS-STARTPTS, scale=1920x1080 [upperleft];
         [1:v] trim=start=40.483000,setpts=PTS-STARTPTS, scale=1920x1080 [upperright];
         [2:v] trim=start=32.416471,setpts=PTS-STARTPTS, scale=1920x1080 [lowerleft];
         [3:v] trim=start=28.100000,setpts=PTS-STARTPTS, scale=1920x1080 [lowerright];
         [3:a] atrim=start=28.100000,asetpts=PTS-STARTPTS[outa];
         # 构建视频网格
         [base][upperleft] overlay=shortest=1 [tmp1];
         [tmp1][upperright] overlay=shortest=1:x=1920 [tmp2];
         [tmp2][lowerleft] overlay=shortest=1:y=1080 [tmp3];
         [tmp3][lowerright] overlay=shortest=1:x=1920:y=1080[grid];
         # 添加带淡入淡出的文字
         [grid] drawtext=text='Summer Video':fontsize=60:fontcolor=white:alpha='if(lt(t,10),0,if(lt(t,11),(t-10)/1,if(lt(t,40),1,if(lt(t,41),(41-t)/1,0))))':x=(w-text_w)/2:y=(h-text_h)/2[v];
     "
     -map "[v]" -map "[outa]" -c:v libx264 -crf 17 -shortest -t 880 output4k_with_text.mkv
关键说明
  • 滤镜链连接:先完成视频网格的合成为[grid],再将其作为drawtext的输入,确保所有滤镜节点都连接成完整链路,避免未连接输出的错误。
  • 淡入淡出实现:通过alpha表达式控制文字透明度:
    • lt(t,10):10秒前透明度为0(隐藏)
    • lt(t,11):10-11秒线性淡入(透明度从0到1)
    • lt(t,40):11-40秒保持完全显示(透明度1)
    • lt(t,41):40-41秒线性淡出(透明度从1到0)
    • 超出41秒后透明度回到0
  • 文字位置:x=(w-text_w)/2:y=(h-text_h)/2 将文字居中显示,可根据需求调整坐标。
  • 字体参数:可添加fontfile=/path/to/your/font.ttf指定自定义字体,调整fontsize、fontcolor等参数优化显示效果。

内容的提问来源于stack exchange,提问作者PirateApp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:10:25