こんにちは、コミュニティ
# iMX 8MP
ハーヴェイ021
プル rtsp ストリーム中に問題を見逃しました。
「RTSP_URL」はVLCを使用して検証されました。
ビデオコーディング: H264
コマンド: gst-launch-1.0 rtspsrc location=$RTSP_URL キュー!rtph264depay !v4l2h264dec !オートビデオシンク
ターゲットイメージバージョン: linux6.6.36 フル
対象マシン: i.MX 8mp
こんにちは、
さらに情報はありますか?
よろしくお願いします、
志明
ビデオのfpsは10です。詳細情報は以下のとおりです。
こんにちは@noway
ビデオを 60FPS でデコードする場合、最大解像度は 1080p であり、gstreamer の最大解像度には制限があります。VPU の解像度が高くなると、パフォーマンスが低下します。
opencv の場合、以下の設定を試すことができます。
gst = f"rtspsrc location={RTSP_URL} protocols=tcp latency=50 ! " \
f"rtph265depay ! h265parse config-interval=-1 ! " \
f"decodebin ! videoconvert ! video/x-raw,format=BGR ! " \
f"queue max-size-buffers=1 leaky=downstream ! " \
f"appsink drop=true max-buffers=1 sync=false"
cap = cv2.VideoCapture(gst, cv2.CAP_GSTREAMER)
よろしくお願いします、
志明
ご返信ありがとうございます。デコードは動作するようになりました。しかし、まだ 2 つの問題が残っています。
ビデオ解像度を1080pから2Kに変更すると、デコードできません
ログについては添付ファイル「pull.log」を参照してください。
2.Python でデコードすると、1 フレームのデータを取得するのに 0.4 秒かかることがわかりました。なぜ SO 遅いのでしょうか?コードについては添付ファイル「rtsp.py」を参照してください。
こんにちは、
オーディオとビデオの設定を分割するには、以下のコマンドを試してください。
gst-launch-1.0 -v rtspsrc location=xxxxx name=src protocols=tcp latency=100 \
src. ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! v4l2h264dec! videoconvert ! autovideosink \
src. ! queue ! application/x-rtp,media=audio,encoding-name=MPEG4-GENERIC,payload=97 ! rtpmp4gdepay ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink
よろしくお願いします、
志明
彼は、avdec_h264 が見つからなかったことを示しました。
そして、v4l2h264dec を試してみましたが、これも成功しませんでした。エラーログについては添付ファイルを参照してください。
試行中のコマンド: gst-launch-1.0-v rtspsrc 場所=$RTSP_URL プロトコル=tcp レイテンシ=100 !rtph264depay !v4l2h264dec !autovideosink > pull.log 2>&1
こんにちは、
以下のコマンドを使用してみてください。
gst-launch-1.0 -v rtspsrc location=$RTSP_URL protocols=tcp latency=100 ! rtph264depay ! avdec_h264 ! autovideosink
よろしくお願いします、
志明