kani
2014年12月20日 20時50分
はじめまして、kaniといいます。
armadillo-840を使って、動画の表示などを行いたいと考えています。
まずは、基本的なところからとgstreamerを使用してMPEG2を表示しようとしたのですが
gst-launch-1.0 -v filesrc location=test.mpg ! mpegpsdemux name=demux0 demux0.video_e0 ! mpegvideoparse ! avdec_mpeg2video ! videoconvert ! fbdevsink device=/dev/fb0
としたところ、SIGSEGVが発生して止まってしまいました。
videoconvertが発生箇所のようなので、調べようと思ったのですが、
ソースファイルを見つけることができませんでした。
ATDE5にこれらのソースファイルは入っていますでしょうか。
もし入っていない場合ソースをいただくことは可能でしょうか。
よろしくお願いいたします。
コメント
kani
コメントありがとうございます。
>MPEG2 Video の伸長を行う gstreamer のソフトウェアデコーダ element を組み込めば、再生できるようになるとは思いますが、十分な品質では
>再生できない可能性が高いと思います。
そうですね。ですので、できるのかどうか試してみたかったのです。
幸い、avdec_mpeg2videoが組み込まれていて、ソフトデコードはできそうなこと、
「videoconvert ! fbdevsink device=/dev/fb0」の部分を、「filesink location=/dev/null」
とすると、それなりに処理できてそうな感じなので投稿させていただきました。
もし何かお気づきの点があればまたよろしくお願いいたします。
at_kojiro.yamada
回答が遅くなってしまい申し訳ありません。
videoconvertはgst-plugins-baseに含まれており、ソースコードは以下からダウンロードできます。
ファイル名 : gst-plugins-base1.0_1.0.8.orig.tar.xz
http://snapshot.debian.org/package/gst-plugins-base1.0/1.0.8-1~bpo70%2B…
> もし何かお気づきの点があればまたよろしくお願いいたします。
fbdevsinkをfakesinkに変更すると、以下の結果となるため
fbdevsinkが問題である可能性も考えられます。
[root@armadillo840-0 (ttySC2) /tmp]# gst-launch-1.0 filesrc location=sample2_k.m pg ! mpegpsdemux name=demux0 demux0.video_e0 ! mpegvideoparse ! avdec_mpeg2video ! videoconvert ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Redistribute latency... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock
fbdevsinkはgst-plugins-badに含まれており、ソースコードは以下からダウンロードできます。
ファイル名 : gst-plugins-bad1.0_1.0.8.orig.tar.xz
http://snapshot.debian.org/package/gst-plugins-bad1.0/1.0.8-1~bpo70%2B1/
kani
情報ありがとうございます。
ダウンロードして試してみました。
色々ありましたが、結果から言いますと異常が発生しているのはvideoconvertの方でした
RGBに変換する際にORCを使用しているようですが、それがうまく実行されないようです。
環境の問題なのかはよくわかっていません。
videoconvertも処理を失敗しているのに、そのエラーチェックをしていないので途中で落ちるという状況になっているわけですが・・・。
とりあえずORCを使わないようにしたら落ちることはありませんでしたが、処理が遅いよと怒られてしまいました。
ORCが速度の改善にどのくらい寄与するかご存知の方いらっしゃいますでしょうか。
それから、fbdevsinkですが、1.0ではポートから外れているようです。
悪戦苦闘してなんとかコンパイルできましたが、実行する際に余計なライブラリをいっぱい要求されてしまいました。
アットマーク様の方で問題がなければ
ソースやconfigureのオプションを開示していただくことは可能でしょうか。
at_kojiro.yamada
> それから、fbdevsinkですが、1.0ではポートから外れているようです。
申し訳ございませんでした。
fbdevsinkをビルドするために弊社でパッチを当てております。
debian packageのビルドに対応したパッチを含むdebianディレクトリは以下からダウンロード可能となっております。
http://download.atmark-techno.com/armadillo-840/cross-dev/source/gst-pl…
> アットマーク様の方で問題がなければ
> ソースやconfigureのオプションを開示していただくことは可能でしょうか。
ビルドは、
オリジナルのgst-plugins-bad1.0_1.0.8にdebianディレクトリを追加し、
Debianで起動したArmadillo上で、必要なパッケージをインストールした後、
dpkg-buildpackageコマンドを実行して行っています。
[Armadillo ~/gst-plugins-bad-1.0.8]$ dpkg-buildpackage -us -uc -rfakeroot
shkoga
2014年12月22日 13時27分
ご質問の回答ではないのですが、ちょっと気になったので、コメントします。
>armadillo-840を使って、動画の表示などを行いたいと考えています。
>まずは、基本的なところからとgstreamerを使用してMPEG2を表示しようとしたのですが
>gst-launch-1.0 -v filesrc location=test.mpg ! mpegpsdemux name=demux0 demux0.video_e0 ! mpegvideoparse ! avdec_mpeg2video ! videoconvert ! fbdevsink device=/dev/fb0
>としたところ、SIGSEGVが発生して止まってしまいました。
>videoconvertが発生箇所のようなので、調べようと思ったのですが、
>ソースファイルを見つけることができませんでした。
>ATDE5にこれらのソースファイルは入っていますでしょうか。
>もし入っていない場合ソースをいただくことは可能でしょうか。
上記のパイプライン指定を見ると、MPEG2 Video の映像を格納した MPEG2 PS コンテナフォーマットの動画ファイルを再生しようとしていらっしゃるのだと思います。しかし、Armadillo-8x0 の AV コーデックミドルウェアは、MPEG2 Video の映像には対応しておらず、H.264 のみです:
http://armadillo.atmark-techno.com/software/av-codec#1
MPEG2 Video の伸長を行う gstreamer のソフトウェアデコーダ element を組み込めば、再生できるようになるとは思いますが、十分な品質では再生できない可能性が高いと思います。
--
古賀信哉 (株)サムシングプレシャス