2024-04-25 04:27:12 发布
网友
在Python程序中,我使用GStreamer的playbin和textoverlay来播放视频文件并在其上显示一些文本。 这很好:如果我更改textoverlay的text属性,则显示新文本。在
playbin
textoverlay
text
但是现在我想根据视频的当前位置/时间设置文本(比如字幕)。在
我读过管道的时钟、缓冲区的时间戳、段事件和外部计时器,它们每隔x毫秒查询一次当前时间。但是,最好的做法是什么来了解时间的变化,以便我能够尽快显示正确的文本?在
与视频真正同步的最佳方法是使用cairooverlay元素,并根据帧的实际时间戳直接在管道内部进行渲染。或者写下你自己的元素。
如果计时不需要非常精确,最简单的解决方案是使用管道时钟。您可以在启动后从管道中获取它,然后可以为所需的时间或间隔创建单次(或周期性)时钟标识。然后对时钟使用async_wait()方法。
要获得与管道1秒位置相对应的时钟时间,您需要将1秒(即1000000000)加到管道的基准时间上。您可以在创建时钟ID时使用该值。
与视频真正同步的最佳方法是使用cairooverlay元素,并根据帧的实际时间戳直接在管道内部进行渲染。或者写下你自己的元素。
如果计时不需要非常精确,最简单的解决方案是使用管道时钟。您可以在启动后从管道中获取它,然后可以为所需的时间或间隔创建单次(或周期性)时钟标识。然后对时钟使用async_wait()方法。
要获得与管道1秒位置相对应的时钟时间,您需要将1秒(即1000000000)加到管道的基准时间上。您可以在创建时钟ID时使用该值。
相关问题 更多 >
编程相关推荐