ffplay
我正在尝试使用以下方法在播放原始 H.265 视频时创建当前时间戳的叠加层绘制文本筛选。
当前帧号的叠加可以很好地适用于:
ffplay -vf "drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: text='%{n}':box=1:x=(w-tw)/2:y=h-(2*lh)" video.265
我无法像这个帖子使用text='%{pts\:hms}'
。使用这个,我的渲染输出如下所示:
我知道原始 H.265 文件没有任何时间信息,所以这可能是我无法使用的原因pts\:hms
。
我的问题是,是否可以使用当前帧号,如text='%{n}'
但将其除以帧速率,如text='%{n/24}'
?不幸的是,text='%{n/24}'
这是不允许的,text='%{n}/24'
也不起作用:
仅供参考。我将原始视频打包成 mp4 文件ffmpeg -i video.265 -c:v copy video.mp4
,然后上面帖子中的命令就可以正常工作。但我仍然好奇是否可以在 drawtext 过滤器内进行一些计算。
答案1
你必须使用该eif
功能
ffplay -vf \
"drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: \
text='%{eif\:trunc(n/3600/24)\:d\:2}\:%{eif\:trunc(n/60/24)\:d\:2}\:%{eif\:trunc(mod(n*24\,60))\:d\:2}: \
box=1:x=(w-tw)/2:y=h-(2*lh)" \
video.265
这会产生 HH:MM:SS 输出,并预期 24 fps 的视频流。