如何使用 ffmpeg 使用 pts gmtime 绘制文本冒号?

How to drawtext colon with pts gmtime using ffmpeg?

我正在使用 FFMPEG 向视频添加时间戳,我正在使用以下命令:

ffmpeg -y -i input.mp4 -vf "drawtext=fontfile=roboto.ttf:fontsize=36:fontcolor=yellow:text='%{pts\:gmtime\:1575526882\:%d/%m/%y %H:%M}'" -preset ultrafast -f mp4 output.mp4

在此命令中,我在 drawtext

text 属性中的 %H 和 %M 之间使用 :
text='%{pts\:gmtime\:1575526882\:%d/%m/%y %H:%M}'

因为我想这样打印时间06:25

它告诉我这个错误:

Unterminated %{} near '{pts:gmtime:1575526882:%d/%m/%y %H'

如何在 %H%M 之间打印 :,其中 %H 代表小时,%M 代表分钟?

懒惰的方法是使用%R:

text='%{pts\:gmtime\:1575526882\:%d/%m/%y %R}'

否则你将不得不处理转义的烦恼:

text='%{pts\:gmtime\:1575526882\:%d/%m/%y %H\\\:%M}'

您可能需要根据您的环境改变反斜杠的数量。