我在转义":"符号和以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