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

使用FFPLAY添加视频当前时间戳时遇到的问题

问题描述

尝试在视频上叠加显示当前时间,操作后未达到预期效果。执行以下命令时,画面显示的是文本“hms}”而非时间:

"../ffmpeg-2023-01-25-git-2c3107c3e9-full_build/bin/ffplay.exe" -vf "drawtext=fontfile=./consola.ttf:text='%{pts:hms}':fontsize=48:fontcolor=white:box=1:boxborderw=6:boxcolor=black@0.75:x=(w-text_w)/2:y=h-text_h-20" -i "%shadowplays_folder%\%NEWEST_FOLDER%\%NEWEST_FILE%" -autoexit -x "1000" -alwaysontop

但将text='%{pts:hms}'替换为text='test'时,命令可正常显示文本“test”:

"../ffmpeg-2023-01-25-git-2c3107c3e9-full_build/bin/ffplay.exe" -vf "drawtext=fontfile=./consola.ttf:text='test':fontsize=48:fontcolor=white:box=1:boxborderw=6:boxcolor=black@0.75:x=(w-text_w)/2:y=h-text_h-20" -i "%shadowplays_folder%\%NEWEST_FOLDER%\%NEWEST_FILE%" -autoexit -x "1000" -alwaysontop

请问问题出在哪里?

问题原因与解决办法
  • 核心问题:Windows CMD/批处理环境中,%是环境变量的标识符号,输入%{pts:hms}时,CMD会尝试解析%{这个不存在的变量,导致最终只保留hms}显示。
  • 解决办法:将%转义为%%,修改drawtext的text参数为text='%%{pts:hms}'

修改后的完整命令:

"../ffmpeg-2023-01-25-git-2c3107c3e9-full_build/bin/ffplay.exe" -vf "drawtext=fontfile=./consola.ttf:text='%%{pts:hms}':fontsize=48:fontcolor=white:box=1:boxborderw=6:boxcolor=black@0.75:x=(w-text_w)/2:y=h-text_h-20" -i "%shadowplays_folder%\%NEWEST_FOLDER%\%NEWEST_FILE%" -autoexit -x "1000" -alwaysontop

如果是在PowerShell中执行,需将%用反引号转义,即text='%{pts:hms}',但从你的变量写法判断,当前使用的是CMD/批处理环境,优先采用%%`转义方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:10:20