【问题标题】:How to get video streaming data in Apache nifi?如何在 Apache nifi 中获取视频流数据?
【发布时间】:2020-09-11 06:17:42
【问题描述】:

您能否告诉我,有没有办法将视频流式传输到 Nifi?我正在使用 Nifi“ExecuteProcess”来运行 python 和 OpenCV 以捕获视频流,但我无法制作多个流文件。我的程序运行 python 代码,然后将所有捕获的帧放在一个流文件中。因为我想在实时视频上使用 YOLOV3 进行分析,所以我希望每一帧都在不同的流文件中。代码如下。我的程序使用“ExecuteProcess”运行 python 代码,当程序完成时,它将输出控制台上的所有内容存储到单个流文件中,但我想要多个流文件。

如果有更好的使用 Nifi 获取实时视频流的方法,请分享。

import cv2

cap = cv2.VideoCapture("videolink.mp4")

while (True):
    ret, image = cap.read()
    et, jpeg = cv2.imencode('.jpg', image)
    jp = jpeg.tobytes()
    print(jp)

cap.release()
cv2.destroyAllWindows() 

【问题讨论】:

    标签: python opencv video-streaming apache-nifi yolo


    【解决方案1】:

    我认为制作流媒体的最简单方法:

    1/ 设置 ListenHTTP 处理器,它将通过传入的 POST 请求接收视频部分。这将成为您的数据提取点。

    2/ 添加到你的 python 脚本 http-post 方法调用而不是 print 像这样:

    import cv2
    import requests
    
    cap = cv2.VideoCapture("videolink.mp4")
    
    while (True):
        ret, image = cap.read()
        et, jpeg = cv2.imencode('.jpg', image)
        jp = jpeg.tobytes()
        # PORT and BASE_PATH must be configured in ListenHTTP processor
        requests.post('http://localhost:PORT/BASE_PATH', data = jp)
    cap.release()
    cv2.destroyAllWindows()
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多