**这是我第一次发布堆栈溢出,请原谅任何格式问题-我会努力改进!**在
我正在构建一个在多个屏幕上使用循环视频的艺术作品,我需要视频在触发器激活时跳到特定的点(最后通过一个运动传感器)。在
我希望该程序使视频跳转到一个特定的点在视频使用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¶
再次感谢任何帮助。在
目前没有回答
相关问题 更多 >
编程相关推荐