0

关键词

  • Python
  • 流媒体
  • GPU加速
  • 多处理

你好呀。

我想使用 python OpenCV 对 Gstreamer 的 GPU 加速和 UDP 流进行加速。

我通过单一处理成功发送和接收!

但我尝试使用“gst_str”进行 14 次多处理。

我收到一条错误消息 [ WARN:0] global /home/opencv-4.5.2/modules/videoio/src/cap_gstreamer.cpp (1948) writeFrame OpenCV | GStreamer warning: Error pushing buffer to GStreamer pipeline

所以我尽量减少处理次数。

直到 3 处理,没有错误消息。超过 4 个处理出现错误

带有 opencv videowriter 的服务器

gst_str = 'appsrc ! videoconvert  ! nvvideoconvert !  nvv4l2h264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=6000'

out = cv2.VideoWriter(gst_str, cv2.CAP_GSTREAMER, 0, int(cap.get(cv2.CAP_PROP_FPS)),(frame_width, frame_height), True)

接收者

gst-launch-1.0 udpsrc port=6000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 !  rtph264depay! avdec_h264 output-corrupt=false ! videoconvert ! autovideosink
  1. 我该如何解决这个问题?
  2. 如何获取调试的详细错误消息?(已经设置export GST_DEBUG=4

附言。它可以在没有 GPU 加速的情况下进行多处理

gst_str = 'appsrc ! videoconvert ! \
        tee name=t ! queue ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=' + str(port[0]) + ' t. \
                   ! queue ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=' + str(port[1])

我想做GPU加速。

4

0 回答 0