0

キーワード

  • パイソン
  • グストリーマー
  • GPU アクセラレート
  • マルチプロセッシング

こんにちは 親愛なる。

python OpenCVでGstreamerのGPUアクセラレーションとUDPストリームをしたいです。

1回の処理で送受信成功!

しかし、「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ビデオライターを備えたサーバー

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)

ps。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