ffplay 在播放未打包的视频时覆盖当前时间戳

ffplay 在播放未打包的视频时覆盖当前时间戳

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'也不起作用:

截图2

仅供参考。我将原始视频打包成 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 的视频流。

相关内容