Armadilloフォーラム

GStreamer、OpenCVでの動画再生におけるフリーズ現象について

kan-ogawa

2023年2月8日 13時17分

いつもお世話になっております。
kan-ogawaです。

Armadillo-IoT G4にてmp4形式の動画を読み込み、再生した際に途中で添付ファイルのログの通りにフリーズしてしまい、それ以降の処理が実行されません。
初歩的な質問で大変恐縮ですが、原因・改善方法をご教授いただけないでしょうか?

※GStreamer、OpenCVは下記コマンドを実行し、インストール済です。
apt install gstreamer1.0-imx gstreamer1.0-imx-tools gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
apt-get install -y python3-opencv

ファイル ファイルの説明
armadillo_Gstreamer_errorlog.txt
コメント

佐藤です。

こちらでも確認するため、
現象を発生させるための最小のコマンドやプログラムのソースコードは提供可能でしょうか。

python3からOpenCVを読み込み、VideoCaptureクラスを呼び出していただければ、同じ現象が発生いたします。

root@xxxxxxxx:/xxxx# python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cap = cv2.VideoCapture("mp4動画ファイル名")

佐藤です。

cap からフレームを読み込んで表示する必要があるかと思います。
例えば、以下のような内容のファイルを test.py として保存して

import cv2
 
cap = cv2.VideoCapture("mp4動画ファイル名")
 
while(cap.isOpened()):
    ret, frame = cap.read()
 
    if frame is None:                                                           
        break
    cv2.imshow('frame',frame)
    cv2.waitKey(1)
 
cap.release()
cv2.destroyAllWindows()

以下のように実行するとどうでしょうか。

root@xxxxxxxx:/xxxx# python3 test.py

他にもう一点確認させてください、動画ファイル自体は以下のコマンドで再生できますでしょうか。

gst-launch-1.0 filesrc location="mp4動画ファイル名" ! qtdemux ! h264parse ! vpudec ! queue !  waylandsink

kan-ogawaです。

ご指示通り、外部ファイルのtest.pyから実行してみましたが、状況変わらず同じ現象が発生しておりました。

また、動画ファイル自体の再生コマンドにつきましては、再生できず、下記ワーニングが出力されるのみでした。
WARNING: erroneous pipeline: no element "vpudec"

佐藤です。

確認ありがとうございます。
お手数ですが、再度以下のようにgstremerをインストールしてもらえますでしょうか。

apt install gstreamer1.0-imx libgstreamer-imx gstreamer1.0-plugins-bad \
libgstreamer-plugins-bad1.0-0 gstreamer1.0-plugins-base libgstreamer-plugins-base1.0-0 \
gstreamer1.0-plugins-good libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-imx-tools

kan-ogawaです。

再度インストールしなおし、test.pyを実行してみましたが、状況変わらず、同じ現象が発生しておりました。