OMXplayerwrapper和Python跳转到vid中的特定点

2024-10-02 08:30:39 发布

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

**这是我第一次发布堆栈溢出,请原谅任何格式问题-我会努力改进!**在

我正在构建一个在多个屏幕上使用循环视频的艺术作品,我需要视频在触发器激活时跳到特定的点(最后通过一个运动传感器)。在

我希望该程序使视频跳转到一个特定的点在视频使用OMXplayer在树莓Pi。最后,我希望用一个PIR运动传感器的信号来做这个,这个信号连接到Pi的GPIO引脚上,但是现在我用一个键输入进行测试。我使用的是willprice编写的OMXplayer包装器,到目前为止,它非常有效,但是我缺少一些逻辑,希望您能帮助我(https://github.com/willprice/python-omxplayer-wrapper/

我编写了一些代码,使用seek()函数(见下文)触发Python中的一个键项。这是有效的,我可以让视频向前(而不是向后)搜索。最坏的情况下,我会编程视频循环一个部分,然后向前跳,如果需要的话,但这将使一切变得更加复杂。理想情况下,我需要跳到绝对位置。在

从文档(https://python-omxplayer-wrapper.readthedocs.io/en/latest/omxplayer/)我找到了“seek”的函数:seek(相对位置)[source] 按相对位置秒搜索视频

参数:相对位置(浮动)–要搜索的位置(以秒为单位)。在

这样做很好,但它只追求向前,而且只指向一个相对的点。我想使用一个函数,它将:

在视频.seek(绝对位置)

我很确定这是可以做到的,我已经看了一下: 位置事件=无 设置位置回调时调用的事件(播放器,绝对位置)

但我在这里遗漏了一些东西。这似乎不是一个函数。我希望这只是我犹豫不决的逻辑,而不是一个不可能的追求-任何帮助将不胜感激。在

from omxplayer.player import OMXPlayer #runs from the popcornmix omxplayer wrapper at https://github.com/popcornmix/omxplayerhttps://github.com/popcornmix/omxplayer and https://python-omxplayer-wrapper.readthedocs.io/en/latest/)
from pathlib import Path
import time
import subprocess


VIDEO_PATH = Path("video.mp4") #any test video - this works, loads and plays

player = OMXPlayer(VIDEO_PATH)
positionEvent = 3

while True:
    key = input()

    currtime = player.position()

    #below an attempt at looping back 3 seconds after the first thrre seconds. This is not working.
    if(currtime > 3):
        player.seek(-300)
        print(currtime)

    #below seek works fine when I enter the key, but it only seeks to a relative position
    if key == 'h':
        player.seek(300) 

sleep(5)

这里没有错误消息。视频播放,搜索前进工作。我只想看看我能不能把视频找到一个绝对的位置。也许我错过了一些简单的东西-我希望如此。在

有绝对搜索的键码,但我不知道怎么叫它们: omxplayer.keys.SEEK_绝对=26¶

再次感谢任何帮助。在


Tags: thekey函数fromhttpsimportgithubcom

热门问题