Использовать OpenCV-Python в прямом эфире Streamlink?

Мне нужно запустить распознавание изображений OpenCV-Python в прямых трансляциях, извлеченных из Twitch, используя Streamlink, без записи потока на диск. У меня есть все мои средства распознавания изображений, протестированные и готовые к работе (я тестировал с помощью снимка экрана win32api), и у меня также есть Streamlink, успешно извлекающий потоки с помощью предлагаемых команд cli, но мне нужно иметь возможность анализировать потоки в одном кадре. за раз, используя OpenCV в скрипте Python.

Мой вопрос: как мне анализировать каждый кадр потока Streamlink с помощью OpenCV?


person O R    schedule 30.03.2021    source источник


Ответы (1)


Я думаю, что этот код дает вам представление. Вам просто нужно получить поток по потоковой ссылке и захватить с помощью openCV

def stream_to_url(url, quality='best'):
    streams = streamlink.streams(url)
    if streams:
        return streams[quality].to_url()
    else:
        raise ValueError("No steams were available")

Главный

def main(url, quality='best', fps=30.0):
    stream_url = stream_to_url(url, quality)
    cap = cv2.VideoCapture(stream_url)

    frame_time = int((1.0 / fps) * 1000.0)

    while True:
        try:
            ret, frame = cap.read()

https://github.com/streamlink/streamlink/blob/6a30ed7524eff2cdb205e024294b187cb660e4e3/examples/opencv-face.py#L40

person gazi ahmet    schedule 30.03.2021
comment
При дальнейшем тестировании я вижу, что этот код работает значительно хуже, чем консольные команды Streamlink и проигрыватель VLC. Я получаю много заиканий и пропусков кадров. По какой-то причине в MacOS поток воспроизводится в замедленном режиме. Любые идеи? - person O R; 05.04.2021