代码之家  ›  专栏  ›  技术社区  ›  Simon

视频播放期间在特定时间戳触发事件

  •  1
  • Simon  · 技术社区  · 7 年前

    我用的是树莓皮3跑树莓皮。我需要通过HDMI播放视频文件 事件是对GPIO的简单写入操作。我的问题是: 我应该用什么方法来做这件事?

    我的第一种方法是使用OpenCv(python)和VideoCapture(),但raspberry pi太慢,我的FPS非常低(我需要在1080p时至少25 FPS)。

    ,我读了文档,但我不知道该用哪种工具来做这项工作。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Simon    7 年前

    多亏了 ( 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()
    
        2
  •  1
  •   ensonic    7 年前

    您需要为此编写一些代码。您可以编写gpiowriter元素。该元素将具有io引脚的gobject属性和值的可控制属性。然后,您可以附加一个列出时间戳:值对的GstControlSource。gpiowriter可以没有pad,只运行一个线程并根据管道时钟从控制器同步属性,也可以是类似passthrough元素的标识。后者将同步帧上的属性。