OMXplayer-wrapper和Python-跳至视频中的特定点

时间:2019-05-23 21:12:08

标签: python video raspberry-pi3 omxplayer

**这是我第一次在Stack Overflow上发帖,所以请原谅任何格式问题-我会尽力改善! **

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

我希望该程序使用Raspberry Pi上的OMXplayer使视频跳至视频中的特定点。最后,我希望通过连接到Pi的GPIO引脚中的PIR运动传感器发出的信号来完成此操作,但是现在我正在测试一个按键输入。我使用的是Will Price的OMXplayer-wrapper,到目前为止,该工具非常有效,但是我缺少一些逻辑,希望能提供帮助(https://github.com/willprice/python-omxplayer-wrapper/

我写了一些使用seek()函数(见下文)的代码,该代码触发了Python中的键输入。这是可行的,我可以使视频向前搜索(而不向后搜索)。最坏的情况是,我将对视频进行编程以循环播放某个部分,然后根据需要跳转到前面,但这会使一切变得更加复杂。理想情况下,我需要跳到绝对位置。

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

参数:relative_position(float)-要搜索的位置(以秒为单位)。

这很好用,但它只向前寻找,并且只到达相对点。我想使用一个函数,该函数将:

video.seek(absolute_position)

我很确定这是可以做到的,并且看一下: positionEvent =无 在设置位置回调(玩家,absolute_position)上调用的事件

但是我在这里缺少一些东西。这似乎不起作用。我希望这只是我的抖动逻辑,而不是不可能的追求-任何帮助将不胜感激。

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_ABSOLUTE =26¶

再次,我们将不胜感激。

0 个答案:

没有答案