Q:ffmpeg 绘图文本"localtime"视频过滤器 - 以自定义格式显示



我在转义":"符号和以hms(HH:MM:SS)格式显示本地时间以覆盖实时输入(MPEG-TS)时遇到问题,然后将其作为实时输出推出-我一直在摸索以一种格式显示"本地时间",这种格式大约达到了我想要达到的一半,其代码示例是:

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

它实现的是以"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

这个:

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

以及类似的:

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

但是,由于ffmpeg试图将"%H"、"%M"one_answers"%S"解析为本地时间的多个独立参数(然后本地时间抱怨它最多只能接受x1个参数),或者ffmpeg抱怨"H"附近有松散的"%"字符,因此上述操作都没有帮助,因为它返回了不同的错误。。。很明显,我没有正确地逃避,或者我的论点顺序不正确。。。

您最初显示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

我已经工作了好几天,终于解决了这个问题,事实证明解决方案很简单,只需添加更多\,直到你最终得到它。

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

最新更新