如何用FFmpeg将视频帧号替换为HH:MM:SS格式时间?
修改FFmpeg命令以显示HH:MM:SS格式时间
直接修改drawtext滤镜里的text参数即可,把帧号变量替换为时间格式化变量:
ffmpeg -y -i input.mp4 -an -vf drawtext=fontsize=36:fontcolor=yellow:text='%{pts:hms}':x=20:y=20 -f mp4 output.mp4
关键修改说明
核心变化是将原命令中的 text='%{frame_num}' 替换为 text='%{pts:hms}':
%{pts}代表显示时间戳(Presentation Timestamp),对应视频当前帧的播放时间:hms是格式化标记,会把时间戳转换为HH:MM:SS(时:分:秒)的人类可读格式
可选调整建议
- 如果需要保留原视频的音频,删除命令中的
-an参数即可 - 可以按需修改
fontsize(字体大小)、fontcolor(字体颜色)、x/y(文本在画面中的位置)这些参数 - 若要显示带毫秒的精确时间(格式如
HH:MM:SS.sss),可以改用text='%{pts:hms:.3f}'
内容的提问来源于stack exchange,提问作者lucky1928
相关产品推荐
相关产品推荐

