关键词
- 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
- 我该如何解决这个问题?
- 如何获取调试的详细错误消息?(已经设置
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加速。