Пожарные события в определенные временные метки во время воспроизведения видео

Я использую Raspberry Pi 3 под управлением Raspbian. Мне нужно воспроизвести видеофайл через HDMI, и мне нужно, чтобы события запускались в определенные временные коды во время воспроизведения видео. События - это простые операции записи в GPIO. Моя проблема: какой подход я должен использовать для этого?

Мой первый подход состоял в том, чтобы использовать OpenCv (python) и VideoCapture(), но Raspberry Pi слишком медленный, а мой FPS очень низкий (мне нужно по крайней мере 25 FPS при 1080p).

Поэтому сейчас я ищу другие решения: Gstreamer, FFMPEG, omxplayer, я читаю документацию, но не могу понять, какой инструмент использовать для этой работы.

2 ответа

Я, наконец, решил это легко с помощью omxplayer благодаря python-omxplayer-wrapper ( https://github.com/willprice/python-omxplayer-wrapper)

* РЕДАКТИРОВАТЬ: вот как будет выглядеть базовый пример кода:

from omxplayer import OMXPlayer
from time import sleep

/* Setup the player as shown in omxplayer-wrapper examples : */
source = '../video/gray10sec.mp4'
player = OMXPlayer(source, args=['--loop', '--no-osd', '--blank'])
player.pause()
sleep(5)
player.play()

/* Make a query to position() inside infinite loop : */
while (1):
    position = player.position() * 1000
    /* Event timecodes values are stored in "events" */
    for event in events.values():
        if position - 20 <= event['tc'] and position + 20 >= event['tc']:
            /* Put your code here */

player.quit()

Вам нужно будет написать код для этого. Вы можете написать элемент gpiowriter. Элемент будет иметь свойства gobject для io-pin и контролируемое свойство для значения. Затем вы можете прикрепить GstControlSource, который перечисляет пары timestamp:value. Gpiowriter может не иметь пэдов и просто запускать поток и синхронизировать свойства из контроллера на основе тактовых импульсов конвейера, или это может быть сквозной элемент, такой как identity. Позднее будет синхронизировать свойства на кадре.

Другие вопросы по тегам