ce_fono
2015年9月22日 14時04分
本田です。
GStreamerのavdec_bmpエレメントを使ったBMPファイルの表示が出来ません。
コマンドの間違いがありましたら、ご指摘願います。
試した表示コマンドは以下のものです。
gst-launch-1.0 --gst-debug-no-color --gst-debug-level=5 \ -e filesrc location=/mnt/sdcard/smpte_800x480.bmp \ ! image/bmp ! avdec_bmp \ ! videoconvert ! fbdevsink device=/dev/fb1 2> /home/ftp/pub/error.txt
上記コマンドで採取したログおよびコンソール出力と表示に使用したBMPファイルを添付します。
表示に使用したBMPファイルは、avenc_bmpエレメントを使った以下のコマンドで作成しています。
gst-launch-1.0 videotestsrc num-buffers=1 \ ! video/x-raw,width=800,height=480,framerate=1/1 \ ! videoconvert ! video/x-raw,format=BGR \ ! avenc_bmp ! queue ! filesink location=/mnt/sdcard/smpte_800x480.bmp
試した環境の情報です。
カーネル: linux-a840-v1.11.bin.gz
ユーザーランド: romfs-a840-v1.09.img.gz
採取したログを見ると12925行目に最初のエラーlibav :0:: not enough data (4096 < 1152054)があります。
また13261行目以降にlibav :0:: bad magic numberのエラーが何回も現れています。
BMPファイルヘッダの解析に失敗しているように見えます。
GStreamer(というかgst-launch)でBMPファイルを表示する事例をネットで探しましたが見つかりませんでした。
たまたまavenc_bmpによるファイル保存が成功したのでavdec_bmpで表示できるかと思い、はまっています。
よろしくお願い致します。
ファイル | ファイルの説明 |
---|---|
console_txt.zip | コンソール出力 |
gst_log_txt.zip | gst-launch-1.0のログ |
smpte_800x480_bmp.zip | 表示に使用したBMPファイル |
コメント
at_yashi
ce_fono
at_yashi
> GStreamerによるBMPファイルの表示は断念します。
GStreamer で、BMPを表示したい理由を聞いても良いでしょうか?
GStreamer を使ったビデオアプリで cheese[1] というのがあります。
このアプリでもキャプチャーは GStreamer の camerabin[2] を使っていますが、
画像/thumbnailの表示[3]は、gdk_pixbuf[4] をつかっています。
これは参考になりますか?
[1]: https://wiki.gnome.org/Apps/Cheese
[2]: https://git.gnome.org/browse/cheese/tree/libcheese/cheese-camera.c#n1581
[3]: https://git.gnome.org/browse/cheese/tree/src/thumbview/cheese-thumbnail…
[4]: https://developer.gnome.org/gdk-pixbuf/stable/
ps. cheese は、ATDEの中にもはいっているので、開発環境に webカメラを繋げば
動作すると思います。
at_ohsawa
at_yashi
2015年9月22日 16時36分
> BMPファイルヘッダの解析に失敗しているように見えます。
失敗するファイル、ありますね。ちゃんと表示されるものとされないものがあるみたいです。
詳しく調査していませんが、 imagemagick の convert で変換すると、正しく表示されました。
imagemagick の identify で変換前後の差分をとってみたのですが、v3 と gammaくらいしか
差がないです。v3 はダメなのかな?とおもったら、v3でも表示されるものがありました。
identify では、差がでないなにかなんですね。