【问题标题】:Use OpenCV-Python on a Streamlink live stream?在 Streamlink 直播流上使用 OpenCV-Python?
【发布时间】:2021-03-30 18:50:32
【问题描述】:

我需要使用 Streamlink 对从 Twitch 提取的实时流运行 OpenCV-Python 图像识别,而无需将流写入磁盘。我已经对所有图像识别进行了测试并准备就绪(我使用 win32api 屏幕截图进行了测试),并且我还使用 Streamlink 提供的 cli 命令成功地提取了流,但我需要能够分析流一帧一次在 Python 脚本中使用 OpenCV。

我的问题是:我将如何使用 OpenCV 分析 Streamlink 流的每一帧?

【问题讨论】:

    标签: python-3.x opencv computer-vision http-live-streaming streamlink


    【解决方案1】:

    我认为这段代码给了你一个想法。您只需要通过streamlink获取流并通过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

    【讨论】:

    • 经过进一步测试,我发现此代码的性能明显低于 Streamlink 控制台命令和 VLC 播放器。我收到很多口吃和丢失的帧。出于某种原因,在 MacOS 上,流以慢动作播放。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2017-08-19
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多