Python中的GStreamer计时

2024-04-25 04:27:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python程序中,我使用GStreamer的playbintextoverlay来播放视频文件并在其上显示一些文本。 这很好:如果我更改textoverlaytext属性,则显示新文本。在

但是现在我想根据视频的当前位置/时间设置文本(比如字幕)。在

我读过管道的时钟、缓冲区的时间戳、段事件和外部计时器,它们每隔x毫秒查询一次当前时间。但是,最好的做法是什么来了解时间的变化,以便我能够尽快显示正确的文本?在


Tags: text文本程序视频属性管道时间事件
1条回答
网友
1楼 · 发布于 2024-04-25 04:27:12

与视频真正同步的最佳方法是使用cairooverlay元素,并根据帧的实际时间戳直接在管道内部进行渲染。或者写下你自己的元素。

如果计时不需要非常精确,最简单的解决方案是使用管道时钟。您可以在启动后从管道中获取它,然后可以为所需的时间或间隔创建单次(或周期性)时钟标识。然后对时钟使用async_wait()方法。

要获得与管道1秒位置相对应的时钟时间,您需要将1秒(即1000000000)加到管道的基准时间上。您可以在创建时钟ID时使用该值。

相关问题 更多 >