さまざまな物や事に関する、役に立ったり立たなかったりするテキストが綴られるブログ。

2013/08/31

[Nexus7] ビデオ入力を試してみる

今回はこの組み合わせをチェック
PCやMacで使用可能なUSBビデオキャプチャデバイス"EasyCap"。低価格と手軽さで人気のアイテムです。今回はこれを使ってAndroid端末のビデオ入力を試してみる、というお話。

ただし、ビデオ信号を画面に表示させるだけであり、それ以上のことはできませんのでお間違いなきよう。実験的要素がかなり強いネタとなっております。

基本的には機種限定の話ではないのですが、いくつかの要件があります。まず、OSがCyanogenMod10.1(およびその亜種)で、かつカーネルバージョンが"3.1.10-g25ab3af"であること。もちろん、ご自身でモジュールやカーネルをビルドできるならバージョン制限は無視できます。

さらに、"EasyCap"で使用されているチップセットが"Syntek STK1160"であること。Linuxのモジュールがこのチップセット用に最適化されているためです。

ちなみに当方では、"USB ROM"というカスタムROM(2013-08-17版)をインストールした"Nexus7(2012)"を使用しました。

で、"EasyCap"の使用チップセットを事前に知る方法ですが...実はありません。そも市場に出回っているほとんどの"EasyCap"がクローンであり、見た目は同じでも中身はまったく別物だったりすることがあるため。この辺の事情は、こちらのサイトをご覧頂きたく。詳細なレポートが用意されております。

手元には以前入手した"EasyCap"があったので、これを使用しました。ちなみにAmazon.co.jpにて購入したモノです。後で判明したのですが、結果的にはこれで正解だった様子。ただし、現在売られているモノが同じ仕様かどうかは不明なので、あまり参考にはならないかもしれません。

ということで、これをAndroidのビデオ入力デバイスとしてセットアップしてみます。まずは、ドライバとアプリの入手から。RootzWikiというBBSのこちらの投稿にある"easycap_auto-switch_for_3.1.10-g25ab3af.zip"および"carcam_api9.zip"をダウンロードしてきます。

前者がドライバ、後者がアプリとなっております。"carcam_api9.zip"を展開すると"carcam_api9.apk"が現れますので、これを使用するAndroid端末にインストールします。

ドライバの方はなぜかzipとrarの二重に圧縮がかけられておりますが、展開すると"easycap.ko"が現れます。これを端末の"/data/local/"にコピー。これはローダブルなモジュールとなっておりますので、ターミナルエミュレータにて以下のコマンドを入力してシステムに組み込みます。
insmod /data/local/easycap.ko bars=0
モジュールとアプリの準備が完了したら、OTGケーブル経由で"EasyCap"を接続。すると、"/dev/video0"(末尾の数字は0以外の場合もあります)が生成されます。これが見つからない場合、残念ながらその"EasyCap"は使用できません。

"/dev/video0"の存在を確認したら、パーミッションを666(rw-rw-rw-)に変更します。ターミナルエミュレータで以下のコマンドを入力するか、ルートアクセスが可能なファイル管理ソフトを使用します。
chmod 0666 /dev/video0
続いて、先程インストールした"CarCam"を起動して設定をオープン。Deviceが正しいか確認します。ちなみにこの場合は"/dev/video0"で正解。その他、Video formatは"EasyCap(UYVY)"、TV formatは"NTSC"、Resolutionは"EasyCap NTSC(720X480)"であることを確認し、違っていたら直します。

後は物理的な接続のみ。"EasyCap"とソース側機器をビデオケーブルで接続します。S端子は使用できないのでご注意を。最後にソース側の機器をONにしてビデオ信号を送出すれば、アプリの画面にビデオ入力が表示されます。

BDレコーダーのメニューを表示させてみた
映像ですが、FPSはガクンと落ち、解像度も720×480となってしまうので、ソースによっては残念な結果となります。

こちらはBDレコーダーのメニュー画面。ここでは不自然さを感じませんが、アプリが4:3のフォーマットしかサポートしていないため、16:9の映像は横に縮められてしまいます。結果、縦長気味の変な画面に。

また、動きが速い被写体の場合、そのエッジが乱れてガビガビな像になります。そして、ケーブルを接続しても音声は出ません。と、ネガティブ要素を並べていくとダメダメな雰囲気ですが、ソースとしてBDレコーダーのビデオ出力を使用したのが間違いだったかも。

逆に4:3の映像で動きが少ないソースの場合、比較的鮮明に表示されるハズです。ただし、音が出ない問題はそのままであり、ウチでは実験以外の使い道がなかったりします。

そもそも、"CarCam"の名前が示す通り、このアプリは車載したAndroid端末を自動車のリアカメラ用モニタとして使うために作られたものなので、その用途はアリかもしれません。

ただ、当方の環境によるのかもしれませんが、一度端末がスリープに入ると以降画像が見えなくなります。こうなると、端末をリブートさせてからやり直す必要がありました。これが、他の環境でも発生するようであれば、実用は難しいかもしれません。

何にせよ、Android端末でビデオ入力が表示できることを確認するのが目的だったので、その意味では満足できる結果でありました。

***Edit***
別のガジェットにてHDMI入力も試してみました。興味のある方はこちらから。



Related Posts with Thumbnails

2 件のコメント:

匿名 さんのコメント...

お疲れ様です。
記事を興味深く読ませて頂きました。
素人考えですが、この作業はroot化になりますか。

WHMaster さんのコメント...

root化は必須となります。が、今はこんな面倒な事をしなくても、普通に製品が手に入ったりします。以下のURLをご参照くだされ。

http://www.iodata.jp/product/av/capture/gv-usb2a/index.htm

新しい投稿へ 以前の投稿へ ホームへ