• スポンサードリンク

UVCカメラからの映像をWebRTCで送信できるアプリを公開した

あっ送信だけじゃなくて映像も音声も双方向で授受できるからね。
ただしアルファテスト版(汗) 2016/11/11追記:特にクラッシュやANRも無いようなので製品版に変更しました。相変わらず特にユーザー認証とかは今のところ無いので自分だけのルーム名を考えてください。あとソフトキーで幾つかの記号を打てるようになってますがハイフン’-‘とアンダーバー’_’以外は使えませんのであしからずm(__)m リンクはこっちUVCRTCデモ版

まだWebRTCプロジェクトのAndroid用ネイティブデモアプリ(AppRTC)に毛が生えたぐらいの状態なもんで。
オープンアルファテストにしたので、オプトインリンクが設定されたらまた投稿します…とか言いつつ記事書いている内に設定されとった。

UVCRTC デモ版 オープンアルファテスト

どんな端末でも動くわけではありません。

  • USBホスト機能(OTG機能)が動くこと。
    例えばサムソンの一部GALAXY向けのAndroid5.1.1ではUSB機器へアクセス出来ませんので使用できません。
    また安い端末…例えばファーウエイのP8LiteなどのようにそもそもOTG機能が無効になっている端末も動きません。
  • 殆どの中華系SoC(MediaTekとかAllwinnerとかRockchipとかとか)を使っている端末はまず間違いなく動きません。
    でも先日HiSiliconのKirin 950を載せた端末(HUAWEI honor 8)で動いたとの情報をいただきました。フレームレートが出なかったようですが端末のせいなのかカメラのせいなのかあるいはケーブル・アダプタのせいなのかはわかっていません。
  • UVC規格対応を謳っておきながら実際にはUVC規格から外れているwebカメラも動かないかもしれないです。
    結構UVC規格から外れているカメラは多いです(´・ω・`) だいぶ対応策を追加したので大部分は大丈夫なはずなんですが。
    この間はUSB規格としてはアイソクロナス転送をサポートしているとのフラグがセットしてあるにも関わらず、UVC規格としてはアイソクロナス転送ではない(=バルク転送)なデバイスディスクリプタを送ってくる悪いやつを見つけました。
    ちゃんと規格を読んでちょうだいな(●`ε´●)そんなところで独自性を発揮せんでええからな–;
  • 安物のOTGケーブルとか
    接触が悪かったり中の抵抗値がおかしかったりするUSBホスト(OTG)ケーブルが世の中には売るほどあります…と言うか売っております(*ノω・*)テヘ こういうのは繋ぐ端末やカメラとの組み合わせ次第では動いたり動かなかったりします。USB2.0のハブを繋ぐと改善するかもしれません。
  • USB電流の設定がタイトな端末。
    一般のWebカメラだと映像取得中は200から500mAぐらい流れます。組み込み用だと100-200mAなのが多いですがお値段高め^^; だいぶ減ったみたいですが端末によってはカメラが映像取得開始した時にショートと誤検知したり、あるいは電圧が下がってしまってカメラ側から切断されてしまう時があります。こういう時にもUSB2.0のハブを繋ぐと改善するかもしれません。

元のAppRTCデモアプリと違う所:

  • UVCカメラからの映像を伝送可能\(^o^)/
  • 動的パーミッション処理を追加
  • 見た目(笑)
  • アプリ埋め込みのキーボード。
    ソフトウエアキーボードがピコピコ出てくるのは嫌なんじゃぁ(●`ε´●)
  • アイコン…他に書くこと無いんかいという声が聞こえそう(汗)
  • 設定関係をナビゲーションドローワーに変更
  • 通話終了時に5回に1回ぐらいインタースティシャル広告を表示。
    サーバー代ぐらいにはなって欲しいなぁm(_ _)m

とりあえずできること:

今のところはUVCカメラ対応以外は元のAppRTCと大体同じです。

  • UVCカメラからの映像を伝送可能\(^o^)/
  • UVCカメラを繋いでいなければ端末内蔵カメラからの映像を伝送可能
  • ルーム名を指定して接続。
    ルーム選択において何のセキュリティーも無いのでたまたま見知らぬ誰かが同じルーム名を指定して接続しようとすれば…繋がります(@@)
    ちなみに、ルーム名が空の状態でアプリを終了すると次回起動時にランダムな数字をセットします。
    また、ルーム名が空の状態でキーボードの発呼キー(左下にあります)を押してもランダムな数字をセットします。
  • LAN内のIPアドレスを指定して接続
    ただーし、接続される側であらかじめルーム名としてIPアドレス0.0.0.0を指定して待機しとかないとだめ。
    これは今のところ元のAppRTCと同じ仕様です。
    本当はUDPのビーコンでLAN内の誰かを探して接続できる機能も入って入るんだけど。

(まだ)出来ないこと:

  • UVCカメラ⇔内蔵カメラの動的な切替
  • カメラ映像の調整
    バックエンドはオレオレUSB/UVCライブラリで他のUVCカメラ用アプリと一緒なので調整可能にするのは難しくはないんやけど。まぁユーザー数(と広告のクリック数)次第やろなぁ^^;いっぱいダウンロードしていっぱいクリックしてくれるとモチベーションアップしますm(_ _)m
  • ユーザー認証…今はルーム名さえ合っていれば誰とでも繋がります。
  • 自動的に誰か(もちろんお互いに知っとる人同士な)とルーム名をシェアする。
    NFCとかプッシュ配信的な何かで。
  • あらかじめ登録し合った人同士でビデオ電話的な使い方ができる…ようになればいいなぁ
  • シンメトリックNAT越え…これはTURNサーバー立てないといけなくなるので対応予定無し

« »

  • スポンサードリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*