问:ffmpeg drawtext "localtime" 视频过滤器 - 以自定义格式显示

Kār*_* K. 0 ffmpeg

我在转义“:”符号并以 hms(HH:MM:SS) 格式显示本地时间以覆盖实时输入(MPEG-TS)时遇到问题,然后将其作为实时输出推出 - 我摸索着自己的方式要以一种格式显示“ localtime ”,该格式可以达到我想要达到的效果的一半,其代码示例是:

ffmpeg -re -hide_banner -i LIVE_INPUT -vf drawtext="fontsize=90:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='%{localtime\:%H %M %S}'" -f LIVE_OUTPUT
Run Code Online (Sandbox Code Playgroud)

它实现的是它以“HH MM SS”格式而不是“HH:MM:SS”格式显示本地时间......


我确实尝试通过这样写来转义 ':':

ffmpeg -re -hide_banner -i LIVE_INPUT -vf drawtext="fontsize=90:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='%{localtime\:%H\\:%M\\:%S}'" -f LIVE_OUTPUT
Run Code Online (Sandbox Code Playgroud)

和这个:

ffmpeg -re -hide_banner -i LIVE_INPUT -vf drawtext="fontsize=90:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='%{localtime\:%H\:%M\:%S}'" -f LIVE_OUTPUT
Run Code Online (Sandbox Code Playgroud)

以及像这样:

ffmpeg -re -hide_banner -i LIVE_INPUT -vf drawtext="fontsize=90:fontcolor=white:fontfile=/Windows/Fonts/arial.ttf:text='%{localtime\:%H \: %M \: %S}'" -f LIVE_OUTPUT
Run Code Online (Sandbox Code Playgroud)

但是以上都没有帮助,因为它返回不同的错误,因为 ffmpeg 尝试将 '%H' '%M' 和 '%S' 解析为多个单独的 localtime 参数(然后 localtime 抱怨它最多只能接受 x1 参数),或者 ffmpeg 抱怨“H”附近有松散的 '%' 字符......显然我没有正确转义它或者我的参数顺序不正确......

Gya*_*yan 6

您原来的显示 HH:MM:SS 的要求可以实现如下

ffmpeg -re -hide_banner -i LIVE_INPUT \
-vf drawtext="fontsize=90:fontcolor=white: \
              fontfile=/Windows/Fonts/arial.ttf:text='%{localtime\:%X}'" \
-f LIVE_OUTPUT
Run Code Online (Sandbox Code Playgroud)