Armadilloフォーラム

Gstreamerのavdec_mjpegエレメントを使用したい

kihara

2016年3月3日 10時12分

木原です。
お世話になっております。

Armadillo-840に組み込まれているGstreamerでavdec_mjpegという
エレメントを使用したかったのですが、確認したところこのエレメントが
入っていないように見受けられました。

avdec_mjpegエレメントを追加することは可能でしょうか?
(可能な場合、エレメントの追加方法も教えていただけると助かります)

宜しくお願い致します。

コメント

at_shota.tamura

2016年3月3日 14時51分

田村です。

> Armadillo-840に組み込まれているGstreamerでavdec_mjpegという
> エレメントを使用したかったのですが、確認したところこのエレメントが
> 入っていないように見受けられました。

Armadillo-840 の標準イメージ[*1]で gst-inspect を行ってみましたが
avdec_mjpeg は入っていました。(何もせずに使えます)

[root@armadillo840-0 (ttySC2) ~]# gst-inspect-1.0  | grep avdec_mjpeg
libav:  avdec_mjpeg: libav MJPEG (Motion JPEG) decoder
libav:  avdec_mjpegb: libav Apple MJPEG-B decoder

もし、ご自身でビルドした atmark-dist を使用している場合は、
make menuconfig 時に、plugins の libav にチェックが入っていることを確認してください
※このチェックが外れていると libav 関連のプラグインが使えなくなります

Miscellaneous Applications  --->
 
         :
 
  --- Multimedia tools              
  [*] gstreamer1.0                  
  [*]   gst-inspect                 
  [*]   gst-launch                  
  [*]   gst-typefind                
        plugins  --->               
 
           :
 
      [*] libav

また、以前のスレッド[*2] に関係するかと思い、以下のパイプラインを動かしてみました。

v4l2src ! image/jpeg ! avdec_mjpeg ! video/x-raw,format=NV12 ! fakesink

結果:動作しません。(`Internal data flow error` で止まります)

これは、Armadillo 上で限った話ではなく、PC 上でも発生するので、
avdec_mjpegの使い方(パイプライン構成やプロパティ設定など)悪いか、
エレメント(avdec_mjpeg)のバグかもしれません。。
※ PC (Debian)上では、GStreamer 1.6.3 を動作させています

ちなみに、以下のパイプラインは正常に動作します。

v4l2src ! image/jpeg ! avdec_mjpeg ! fakesink

NV12 指定をしない場合は `format=Y42B` で出力するようです。(GStreamer のバージョンに依らず)

あまり詳細な調査はできていませんが、参考になれば幸いです。。

[*1]: http://armadillo.atmark-techno.com/armadillo-840/downloads
[*2]: https://armadillo.atmark-techno.com/forum/armadillo/1891