** Я впервые пишу о переполнении стека, поэтому прошу прощения за любые проблемы с форматированием - я постараюсь улучшить по ходу дела!**
Я создаю иллюстрацию, которая использует зацикленные видео на нескольких экранах, и мне нужно, чтобы видео переходило к определенной точке при активации триггера (в конце через датчик движения).
Я бы хотел, чтобы программа заставляла видео переходить к определенной точке видео с помощью OMXplayer на Raspberry Pi.В конце концов, я надеюсь сделать это с помощью сигнала, поступающего от датчика движения PIR, подключенного к выводам GPIO в Pi, но сейчас я тестирую с помощью ключевого ввода.Я использую OMXplayer-обертку от Will Price, которая до сих пор была довольно эффективной, но я упускаю некоторую логику и буду признательна за любую помощь (https://github.com/willprice/python-omxplayer-wrapper/)
У меня есть некоторый написанный код, использующий поиск () функция (см. ниже) сработала с ключевой записи в Python. Это работает, и я могу заставить видео искать вперед (не назад). В худшем случае я запрограммирую видео на цикл раздела, а затем, если потребуется, перескочу вперед.Да, но это сделает все немного сложнее. В идеале мне нужно перейти на абсолютную позицию.
Из документации (https://python -omxplayer-wrapper.readthedocs.io / en /latest / omxplayer / ) Я нашел функцию для «поиска»: seek (lative_position) [источник] Поиск видео по относительной позиции секунд
Параметры: относительная_позиция (float) - позиция в секундах для поиска.
Это прекрасно работает, но ищет только вперед и только к относительной точке. Я хотел бы использовать функцию, которая будет:
video.seek (absolute_position)
Я почти уверен, что это можно сделать, и посмотрел на: positionEvent = None Событие, вызванное установкой обратного вызова позиции (player, 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¶
Опять же, любая помощь будет очень цениться.