How to use UsbWebCamera/UsbWebCameraPro
Sorry this page is still under construction.
The latest version is 2.2.0
Now I release new version for Android5.0
Preparation
- Smartphone / table powered by Android4.1.2 and later, require USB host function
- USB OTG cable(it will be called USB host cable)
- UVC(USB Video Class) supported devices like Web cameras, Video capture devices etc.
Unfortunately some old Web camera like Philips SPC900NC etc. are not UVC devices and can not work with my apps. - It is better to use self-powered USB2.0 hub, Y cable will be also OK but self-powered USB2.0 hub is much better
- Luckiness(^_^;)
Item 1-3 are required and latter 2 items are recommended.
Low cost camera/dumbamera requir about 100mA as USB current and sophisticated camera requir 200-500mA and these power consumption come near and more to Android devices themselves. Therefore I strongly recommend to use “self-powered USB 2.0 hub” or at least Y cable with external power supply because connecting the camera will sometimes make Android devices unstable
Some Android devices support USB3.0 and some of them sometimes do not work well with camera(do not recognize and/or crash, freeze, restart etc. will occur). In this case, USB2.0 hub(both self-powered and bus-powered USB2.0 hub) may help you.
You don’t need root access and/or custom ROM even on Android4.4 or later devices.
Cameras that work well
These are UVC cameras that I have confirmed to work with my apps. NOTE: Unfortunately I can’t guarantee that these cameras should work well on all combination with all Android devices, cable. Additionally some cameras do not support specific resolution/FPS(Frame Rate per Second) that app require.
Current apps does not support internal mic/speaker of camera itself on all Android 4.x devices.
Web cameras
- Logicool/Logitech C910HD
- Logicool/Logitech C930e
- Logicool/Logitech C270
- ELECOM UCAM-DLY300TA
- ELECOM UCAM-DLD200BASV
- ELECOM UCAM-C0220Fxx(app version V1.10 or later)
Video capturing devices(Frame grabber)
- SUNRIASE FEBON100 USB UVC CVBS capture card (Analog video capturing dongle)
- SUNRIASE FEBON168 USB UVC HDMI capture card
(video capturing dongle from HDMI, HDCP frame is not supported) - SUNRIASE FEBON188 USB UVC SDI capture card(Thanks Andy on SUNRIASE)
Other UVC devices
- view to megane, Thanks Terratechnos Inc.
- Tokusatsu Camera supplement with OtonaNoKagaku magazine
- USB micro scope DS200U-Lux by AKIZUKI DENSHI TSUSHO CO.,LTD
- ENDSCOPE USB water proof snake scope(7 meters)
- Micro tube camera MD-T4010L/MD-T4010 by MISUMI Electronics Corp.
App version V1.11 or later is required - Micro tube camera MD-B4010L by MISUMI Electronics Corp.
- 5 mega-pixel micro camera module MD-B5014-3.0 by MISUMI Electronics Corp.
- 5 mega-pixel micro camera module MD-B5014V-3828 by MISUMI Electronics Corp.
- 5 mega-pixel micro camera module MD-B5026-3.0 by MISUMI Electronics Corp.
- 5 mega-pixel micro camera module MD-B5026V-3828 by MISUMI Electronics Corp.
These five cameras are confirmed at MISUMI Electronics Corp. Thanks
Supported camera mode
UsbWebCamerea and UsbWebCameraPro support both MJPEG and YUV2 camera mode. But prior version 1.10 may not work with some camera that supports only YUV2 mode. MJPEG mode have a priority than YUV2 mode on default settings.
Some low cost cameras will support YUV2 mode only and these camera may not support high resolution with high frame rate(like 1600×1200@30FPS). If these type camera support high resolution, it is limited only with slow frame rate like 1-5 FPS and video images will looks intermittently.
Detailed confirmation of camera and Android devices are here(only Japanese now):UsbWebカメラアプリの動作確認。
How to install
Please download from Google Play.
The links to apps on Google Play are here:
- UsbWebCamera(free, with Ads, max recording duration is 3 minutes)
- UsbWebCameraPro(paid-for version, 350JPY, ads free, additional resolution supports, 広告無し, unlimited duration of recording)
After install, let’s connect your camera(^o^)/
The right diagram shows schematics of connection
- Top diagram shows when using only OTG cable
- Second one shows when using OTG cable with self-powered USB2.0 hub(This is recommended)
- Third one shows when using OTG cable with Y cable
- Forth one shows when using OTG Y cable(OTG cable combined Y cable)
Few camera support direct connection to smartphone/tablet.
Note: Video capturing devices(frame grabbers) need to connect video devices. Please connect your video devices according to the operation manual.
Connection
- Please connect camera and OTG cable first. If you connect OTG cable to camera after connecting to your device, camera may not work well.
If you use USB hub, please connect OTG cable to USB hub before connecting OTG cable to your device. In this case you can connect camera to USB hub anytime. - Power ON your device and unlock screen-lock before connecting.
- Connect OTG cable to your device after wishing it works well.
- カメラを使うアプリが他にもインストールしてある場合には、アプリの選択画面が表示されます。ここではUsbWebカメラまたはUsbWebカメラProを選択したものとします。
- 初回は接続したUSB機器を使用するアプリの確認画面が表示されますので、[OK]を押して下さい。ここで、「このUSBデバイスにデフォルトで使用する」にチェックを入れると、次回接続時にこの確認画面が表示されなくなります。他のアプリでカメラを使う予定がなければチェックを入れると次回からの手間が省けます。この確認画面は、アプリのデータを消去することで再び表示されるようになります。
- 通常であればここでカメラからの画像が表示されるはずです\(^o^)/
既に繋いでいる場合にはアプリを起動するだけで上記手順の5の状態になります。
Still image capturing
画面中央下部に水色の丸いアイコンをタッチすると、静止画をキャプチャ出来ます。
もし、画面中央のアイコンが赤色の場合には、画面右下部にあるスイッチアイコンにタッチして下さい。画面中央のアイコンが白い四角の入った赤色の丸いアイコンの場合には動画キャプチャ中です。この場合には一旦アイコンをタッチして動画キャプチャを終了してから画面右下部にあるスイッチアイコンにタッチして下さい。
画面中央下部の水色の丸いアイコンを長押しすると、静止画繰返しキャプチャモードになります。設定画面で指定した回数・間隔で自動的に複数回の静止画キャプチャを行います。静止画繰返しキャプチャモード中は黄色い丸いアイコンになります。黄色い丸いアイコンをタッチすると静止画繰返しキャプチャモードを解除することが出来ます。
静止画は、「外部ストレージ/DCIM/UsbWebCamera」ディレクトリ内にキャプチャした日時のファイル名で保存されます。また、Android標準のギャラリーアプリでも見ることが出来ます。
Movie/Video capturing
画面中央下部に赤色の丸いアイコンが表示されている時にタッチすると、動画をキャプチャ出来ます。
もし、画面中央のアイコンが水色の場合には、画面右下部にあるスイッチアイコンにタッチして下さい。
白い四角が入った赤色の丸いアイコンが表示されている時は、動画キャプチャ中です。この時にアイコンにタッチすると動画のキャプチャが終了します。
赤色の丸いアイコンを長押しすると、動画繰返しキャプチャモードになります。設定画面で指定した回数・間隔で自動的に複数回の動画キャプチャを行います。動画繰返しキャプチャモードでは中に四角が入った黄色の丸いアイコンになります。このアイコンをタッチすると動画繰返しキャプチャモードを解除することが出来ます。
動画は、「外部ストレージ/Movies/UsbWebCamera」ディレクトリ内にキャプチャ開始日時のファイル名で保存されます。また、Android標準のギャラリーアプリでも見ることが出来ます。
なお、アプリバージョンが1.10よりも古い場合には、ギャラリーアプリでは直ぐに見れない場合があります。
音声付き動画のキャプチャ(アプリ1.10以上)
アプリのバージョンが1.10以上で設定画面で録音を有効にしている場合には、音声入りの動画をキャプチャすることが出来ます。現在のバージョンでは端末内蔵のマイクのみ使用可能で、カメラにマイクが内蔵されていても使用することは出来ません。
(Android5.xのNexus5/Nexus7/Nexus9等では、UVCカメラからの音声も同時に取り込むことが出来ます)
Camera controls
Uカメラが対応している場合カメラ画像の明るさ・コントラスト等を調整することが出来ます。
初回起動時には画面上端部に何種類かのアイコンとして並んでいます。
カメラコントロールの表示切り替え
画面左下のアイコンをタッチすると、カメラコントロールの表示・非表示を切り替えることが出来ます。
カメラコントロールの種類
画像調整については、下記の8種類が調整可能です。カメラが対応している場合に表示されますが、対応していても殆ど効果が出ないカメラも有るようです。
- ブライトネス(明るさ)
- コントラスト
- 彩度
- シャープネス
- ガンマ
- ゲイン
- 色合い
- ホワイトバランス
アイコンが緑色の場合は、オートホワイトバランス、白いアイコンの場合はマニュアルホワイトバランスです。アイコンをタッチする度にオートとマニュアルが切り替わります。通常はオートで使って下さい。
マニュアル設定の場合には、画面中央に表示される設定バーで値を変更することが出来ます。この時、設定バー左端のアイコンをタッチするとカメラのデフォルト設定の値になります。設定バーは操作せずに放置すると一定時間後に自動的に非表示に戻ります。
その他として、下記の3種類を行うことが出来ます。
- 十字線を表示
位置合わせ用に十字線を表示することが出来ます。この十字線はプレビュー画面のみに表示され、静止画・動画には保存されません。 - ミラー表示
カメラからの画像を左右反転・上下反転・上下左右反転して表示する事が出来ます。こちらも十字線と同様に、静止画・動画キャプチャには適用されません。
アイコンにタッチすると、画面中央にアイコンが4つ表示されます。左から順に下記の通りとなっています。この時選択した状態が、カメラコントロールのアイコンとして表示されます。- カメラ画像そのまま
- 左右反転
- 上下反転
- 上下左右反転
- 平行移動・拡大縮小・回転(アプリバージョン2.10以降)
アプリバージョン2.10以降)画面のタッチ&ドラッグ操作で並行移動、ピンチ操作で拡大縮小、二本指で画面にタッチしてから一呼吸後にピンチ/ツイスト操作で回転出来るようになりました。画面を長押しすると初期状態に戻ります。ただし並行移動・拡大縮小・回転は画面表示上のみで動画として保存した映像には適用されません。
Settings screen
画面右上のアイコンをタッチすると、設定画面に切り替わります。
設定内容は下記の通りとなっています。
- 一般設定:一定時間後に画面輝度を下げる
このアプリではカメラからの画像を表示している間画面が消えないように制御しています。この設定を有効にすると、指定時間以上操作をせずに放置した場合に、画面の輝度を下げることで消費電力を抑制することが出来ます。初期設定では無効となっています。 - 一般設定:画面の回転制御
画面表示の向きを3通りから選ぶことが出来ます。好みに合わせて設定して下さい。初期設定では「端末の向きで自動切り替え」になっています。- 端末の向きで自動切り替え
- 縦画面固定
- 横画面固定
- 一般設定:いつも同じカメラを使う(アプリバージョン1.06以上)
このアプリでは複数のカメラを同時に接続するのはサポート外で推奨しませんが、複数のカメラを同時に接続した場合に、いつも同じカメラを使用する場合に設定します。
この設定を有効にした後最初に使用したカメラを自動的に選択するようになります。ただし、接続されているカメラが1台だけの場合の動作には影響ありません。 - 一般設定:プレビュー表示の解像度を下げる(アプリバージョン1.06以上)
高解像度での表示を行っている場合に、プレビュー表示の解像度を少し下げることでFPS向上・消費電力抑制をすることが出来ます。動画についてはこの設定に関係なく指定した解像度で保存されます。
現在のバージョンでは、「保存した動画の画質 > この設定OFFでの画質 > この設定ONの場合の画質」となっています。将来のバージョンで、プレビュー表示でも画質優先(保存した動画と同等の画質)となる設定を追加する予定です。 - カメラ設定:画面サイズ(アプリバージョン1.06以上)
プレビュー表示、静止画・動画キャプチャで使用する解像度を選択できます。ただし、使用するカメラによっては下記全ての解像度に対応しているわけではないので、カメラの機種・解像度・最大FPSの設定値によっては映像が表示できなくなる事があります。- QVGA(320×240)
- DCGA/SD(640×400)
- VGA/SD(640×480)
- SVGA(800×600)
- UXGA(1600×1200) pro版のみ選択可能
- 3M(2048×1536) pro版のみ選択可能
- 5M(2592×1944) pro版のみ選択可能
- HVGAW(640×360)
- HD(1280×720)
- FullHD(1920×1080) pro版のみ選択可能
- カメラ設定:最大FPS
バッテリー消耗抑制のために、最大FPSを制限出来ます。ただし、カメラの機種・解像度・最大FPSの設定値によっては映像が表示されなくなる事が有ります。可能な限りここで設定した値でカメラからの映像を取得・動画保存しますが、必ずここでの値となることを保証するものではありません - 録音設定:録音設定(アプリバージョン1.10以上)
カメラからの映像と共に音声を保存する場合に有効にします。現在のバージョンでは内蔵マイクからの音声のみに対応しています。カメラにマイクが内蔵されていても使用できません。
(Android5.xのNexus5/Nexus7/Nexus9等では、UVCカメラからの音声を同時に取り込むことが出来ます) - 録画設定:最大動画キャプチャ時間
一回の動画保存の最大時間を設定します。通常版は最大3分間に制限されていますが、pro版では無制限に設定することが出来ます。ただし、この場合にも外部ストレージ容量の制限を受けます。外部ストレージに全容量の25%以上で20MB以上の空き容量が無い場合には録画できません。また、Androidのシステムソフトウエアや動画再生ソフトの制限により、1つの動画ファイルサイズが2GB以上になった場合には、正常に保存・再生出来ない場合があります。 - 録画設定:繰返しキャプチャ回数[回]
一定時間毎に繰り返して静止画・動画のキャプチャを行う場合の最大回数を設定します。 - 録画設定:繰り返しキャプチャ休止時間
一定時間毎に繰り返して静止画・動画のキャプチャを行う場合のキャプチャ間の待機時間を設定します。 - エキスパート設定:動画キャプチャサイズを16の倍数(アプリバージョン1.06以上)
HD, FullHD, UXGA等の高解像度では、機種によってはシステムソフトウエア・ハードウエアの制限により正常に動画を保存できない場合があります。一部の機種では、FullHD(1920×1080)の動画を保存する際に、色ずれ・下端に緑の帯が起こることが有ります。これは画面の縦のサイズが16の倍数で無い場合に生じる現象で、この設定を有効にすることで改善する場合があります。特に問題の発生しない機種ではこの設定を有効にしないでください。
Nexus7(2012)で、録画した映像の下端に緑の帯が入る場合/色がずれる場合はこの設定を有効にして下さい。 - エキスパート設定:カメラ接続時に自動起動(pro版のアプリバージョン2.0以降)
従来はカメラ接続時に自動的にアプリが起動するようになっていましたが、pro版のアプリバージョン2.0以降では自動起動するかどうかを選択できるようにしました。ただし、Androidのシステム側の制約により、アプリをインストールして一度も起動していない場合には自動起動出来ません。最初の1回だけは手動で起動をお願いします。広告付きの通常版は従来通りカメラ接続時に自動起動します。 - エキスパート設定:プレビュー終了時にアプリ終了(アプリバージョン.1.3以上)
この設定を有効にすると、プレビュー終了時にアプリが終了します。プレビュー終了とは、画面右下のOn/Offボタンでプレビューを終了した場合およびプレビュー中にカメラが取り外された場合です(なお、プレビュー中のカメラ取り外しは推奨しません)。 - エキスパート設定:電源周波数(アプリバージョン1.13以上)
カメラ側で電源由来のノイズを低減するための設定です。元々UVC1.5機器向けには自動選択するようにカメラにはコマンドを送っていたのですが、UVC1.0/1,1の機器・・・いまでもかなり沢山有ります・・・では手動選択しか出来ないので、設定できるようにしました。
「デフォルト」はカメラ自体の初期値です。「無効」は電源由来のノイズ低減機能を使用しません。「50Hz」「60Hz」はお住まいの地域の電源周波数に合わせて設定して下さい。ただし、スマホ・カメラに商用電源から給電しながら使用する場合以外は効果は期待できませんし、実際のところ商用電源から給電している場合でも、手持ちのスマホやタブレットで試す限りでは映像の変化は判りませんでした。 - エキスパート設定:優先ビデオモード(アプリバージョン1.11以上)
カメラがMJPEG/YUVモードの両方をサポートしている場合に、どちらの方法を優先して使用するかを設定します。通常はMJPEG優先にしておいて下さい。
YUV優先にすると、MJPEGモードがサポートされていても可能な限りYUVで接続します。YUVモードではフレームレートが低下・消費電力upしますが画質が良くなることが多いです。
いずれの設定をしていても、どちらか一方のモードしかサポートしていないカメラの場合でも動作します。
Trouble shoot
すみません。作成中です。
カメラを認識できない(カメラを接続してもアプリ確認画面が表示されない)
「USBカメラが見つかりません USBカメラとの接続を確認して下さい」と表示される場合。
- OTGケーブルまたはUSBホストケーブルと表示していないケーブルは、形が同じでも動かないことがあります。
- 一部の機種でプレビュー表示中にケーブルを引き抜くとUSBホスト機能が働かなくなることがあるようです。プレビュー表示中は極力ケーブルを抜かないようにして下さい。万一ケーブルを引き抜いてしまってカメラを認識できなくなった場合には、ご面倒ですが端末の再起動をお願いします。
「特に何も表示されない・またはハイパワーUSB機器が接続されました等が表示される」
- いくつかの端末では節電設定が有効になっている場合にはカメラを接続しても動作しない事があります。節電設定を無効にしてからカメラを接続しなおしてみてください
映像が表示されない(カメラを認識しているが映像が表示されない場合)
「USBカメラの設定範囲外です。表示できません 設定値を確認して下さい」と表示される場合。
- アプリで設定している解像度・FPSをカメラがサポートしていない場合には、表示できません。カメラの取説を参考にしてカメラのサポートしている解像度・FPSに変更して下さい
「カメラのランプは点灯するが映像が表示されない」場合
- アプリバージョン1.13以上を試して下さい
- 残念ながら、いくつかの機種(Lenovo A-1000F等)ではAndroidシステム側の制限により映像取得出来ません
音声が保存されない
- 録音設定:録音設定が無効になっている場合は有効にして下さい
- Android5.xでUVCカメラにマイクが内蔵されていない場合には録音できません。
アプリ内では常に端末(スマホ/タブレット)内蔵のマイクを使用する設定にしていますが、Android5.xではAndroidのシステム側で強制的にUVCカメラ内蔵のマイクを使用しようとするためのようです。
Appendix
What is OTG cable?
USBホストケーブルとも言います。
OTGとは、USB On-The-Goを略してUSB OTG、更に略してOTGです。って何の説明にもなってませんね。
簡単に言うと、USB機器同士を繋ぐための規格で、それをUSB機器に認識させるために必要なのがOTGケーブルです。スマホ/タブレットに繋ぐ側がUSB MiniBまたはMicroBオスコネクタ、周辺機器側がUSB Aメスコネクタとなっていますが、単なるコネクタ形状の変換ケーブルではありません※。単純にUSB MiniBまたはMicroBオスコネクタをUSB Aメスコネクタに変換するだけのケーブルも売っていますがこれは使用できません。必ずOTGケーブルまたはUSBホストケーブルと明記されているか、あるいは「スマホ/タブレットへマウス等の外部機器を接続するためのケーブル」などの表記があるものを使って下さい。
もともとUSBはパソコン等の「ホスト」(親となる機器)と、例えばマウスやキーボード、プリンタ、USBハードディスクと言った周辺機器(子となる機器)を接続するための規格でした。
ところが元々パソコン等に繋いだ時に子となるスマホやタブレットと言った機器へ、直接違う種類の子機器を繋ぎたいと思った人が居てて規格化されたのがUSB On-The-GO、と言うことらしいです。もっとも、キーボードとUSBハードディスクを繋いでとか、USBメモリとUSBハードディスクを繋いで・・・なんてことをしても殆どの場合は駄目ですよ。少なくとも片側は子としても親としても働ける機器・・・スマホやタブレットである必要が有ります。
Androidの場合には、USBホスト機能を公式にサポートしているのはAndroid3.1からで(正確にはAndroid.2.3.4も)、対応している場合にはスペックにUSBホスト機能対応と書いてあることが多いと思います。2012年頃以降発売でAndroid4.xな端末は大抵対応していると思いますが、端末のスペック表等で確認して下さいね。
※OTGケーブルは中の結線が通常のものとは少し異なっていて、USB MiniB/MicroBオスコネクタの4番ピン(ID)が5番(GND)に落ちています。自作している人もいるみたいですが、100円から数百円程度なので普通は買った方が端末・USB機器を壊したり接触不良等の心配がなくていいのでは無いかと思います。
What is Y cable?
三叉ケーブルとも言います。通常USBではホストとなる機器またはセルフパワーのハブから周辺機器へ電流が供給されます。Yケーブルは電源と信号を別々に分岐させたケーブルで、モバイルバッテリー等の別電源から周辺機器へ電流を供給することが出来るようになります。
Yケーブルには、カメラ側へのみ給電可能なものと、OTGケーブルと兼用になっていて対応機種へはカメラ側へも端末側へも給電可能なものの2種類あります(対応機器でなくても少なくともカメラ側へは給電可能なはずです)。いずれにしてもケーブルの取説に従って使用して下さい。御自身のスマホ/タブレットが対応機種なら後者の両方へ給電可能なものを選んだほうが良いのかなって思います。いずれにしても数百円程度です。
Legal notice
- This software is based in part on the work of the Independent JPEG Group
- カメラとの接続処理にlibusbおよびlibuvcを使用しています。
- 静止画の保存にlibpngを使用しています。