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

如何修改FFmpeg命令仅在最后一帧图片添加版权文字?

解决方法:让版权文字仅在最后一张图片显示

你的原命令里的drawtext滤镜是全局应用到所有帧的,所以每张图片上都会显示版权文字。要让它只出现在最后一张图片上,我们可以利用FFmpeg滤镜的enable参数,指定只有最后一帧(对应最后一张图片)才渲染这个文字。

修改后的FFmpeg命令如下:

ffmpeg \
-thread_queue_size 512 \
-f image2 -pattern_type glob -framerate 1/3 \
-i '*.jpg' \
-i 'audio.mp3' \
-c:a aac -c:v libx264 \
-vf "scale=640:480,format=yuv420p,drawtext=text='Copyright':fontcolor=white:box=1:boxcolor=black@0.5:boxborderw=5:x=w-tw-5:y=5:enable='eq(frame_num, nb_frames)'" \
-preset medium \
video.mp4

关键修改点说明:

  • 在drawtext滤镜的参数末尾添加了:enable='eq(frame_num, nb_frames)':
    • frame_num是当前帧的序号(从1开始计数)
    • nb_frames是视频的总帧数(每张图片对应一帧,所以总帧数等于你的图片数量)
    • eq(frame_num, nb_frames)表示仅当当前帧是最后一帧时,才启用drawtext滤镜,这样版权文字就只会在最后一张图片显示的3秒内出现。

如果你的FFmpeg版本比较旧,nb_frames变量可能无法直接使用,这时候可以手动计算最后一张图片的起始时间:假设你有N张图片,最后一张的起始时间是3*(N-1)秒(因为每张图显示3秒),那么enable参数可以改成enable='gte(t, 3*(N-1))',把N替换成你实际的图片数量即可。比如你有10张图,就写成enable='gte(t, 27)'(3*(10-1)=27)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:45:32