Armadilloフォーラム

Gstreamerでの静止画再生方法について

minomi-s

2022年7月14日 14時42分

いつもお世話になっております。

掲題の件、podmanのコンテナからgstreamerを使っての静止画の再生方法をご教授いただけますでしょうか?
マニュアルの記載にそって、動画ファイル(mp4)の再生ができることは確認済みです。
静止画(jpegやpng)の再生については記載が無かったため、実施方法以外に何か注意点などありましたら合わせて教えて頂けますと助かります。

※ちなみにですが、以前に「Armadillo-840」で開発を行っていた際は以下のコマンドを使い、gstreamerでjpegファイルの内容をHDMI接続したディスプレイに表示する、という使い方をしていました(再生時間は10秒の設定)

gst-launch-1.0 -q -e multifilesrc location=sample.jpg caps="image/jpeg,framerate=1/1" num-buffers=10 ! decodebin ! videoscale ! video/x-raw,width=1920,height=1080 ! videoconvert ! fbdevsink
コメント

at_ohsawa

2022年7月14日 18時08分

そのままfbdevsinkをwaylandsinkに置き換えて使って大丈夫です。

waylandsinkは自動的に全画面に拡大表示するのと、decodebinの出力を
そのまま受けることができるので、videoscaleとvideoconvertは省略可能ですが、
書いてあっても問題は無いと思います。

さらに、imagefreezeを使えるので、次のような書き方もできます。
(あえて全画面ではない例として、waylandsinkにwindow-width/heightを設定しています)

gst-launch-1.0 filesrc location=1.jpg ! decodebin ! imagefreeze num-buffers=100 ! video/x-raw,width=640,height=480,framerate=10/1 !  waylandsink window-width=640 window-height=480

いずれにせよ、旧来のパイプラインをwaylandsinkにするだけで支障は無いはずです。

minomi-s

2022年7月14日 18時57分

回答頂きありがとうございます。

> そのままfbdevsinkをwaylandsinkに置き換えて使って大丈夫です。
>
承知しました。後ほどwaylandsinkに変更して試してみます。

> waylandsinkは自動的に全画面に拡大表示するのと、decodebinの出力を
> そのまま受けることができるので、videoscaleとvideoconvertは省略可能ですが、
> 書いてあっても問題は無いと思います。
>
なるほど、waylandsink の場合はwidth/heightを設定しなければ自動的に全画面に拡大表示されるのですね、こちらも確認してみたいと思います
※以前のArmadillo-840の時は起動時に接続しているディスプレイの解像度を /sys/class/graphics/fb0/mode から取得するようにして、gstreamer実行時にwidth/heightの部分に動的に設定するようなことをしていたので…