FFmpeg drawtext帧号格式问题:如何将1显示为0001
FFmpeg drawtext滤镜实现4位带前导零的帧号显示
你之前用Python的str.format()语法处理FFmpeg帧号变量的思路不对,因为drawtext的text参数接受的是FFmpeg自身的表达式语法,不是Python字符串格式化规则。
正确的做法是直接使用FFmpeg内置的格式化语法,把帧号格式化为4位带前导零的形式:
- 将原代码里的
text='%{n}'替换为text='%{n:04d}'
修改后的完整代码:
ff = ffmpeg.drawtext(ff_drawtext, text='%{n:04d}', start_number=1, fontfile='C:/Windows/Fonts/Arial.ttf', fontcolor="white", x='w-(w/1.8)', y='h-(h/30)', fontsize="28", escape_text=False)
语法说明
%{n:04d}的具体含义:
n:FFmpeg drawtext滤镜内置的帧号变量,从start_number指定的数值开始计数04d:指定以十进制整数格式输出,长度不足4位时自动用前导零补全,最终会输出0001、0002这类符合要求的格式
内容的提问来源于stack exchange,提问作者Đạt Nguyễn
相关产品推荐
相关产品推荐

