Android端末に接続したUVC対応カメラ(USB接続のWebカメラ等)からの映像と音声をRTMP対応の動画配信サーバーへ、H.264(映像)+AAC(音声)でライブストリーミングするためのアプリを公開しました\(^o^)/ アプリ内課金対応の無料です。まだ不具合があるかもしれないのでプレビュー版と言う事で。
Google Playのリンクはこちら「UVCStreamer」
Wowza Streaming EngineとRED5へはライブストリーミングできることを確認しています。RTMPに対応している動画配信サーバーの多くへライブストリーミング出来るのではないかと思います。また動画配信サービスとしてはUTREAMへもライブストリーミングできました。時々休止してますが現在もベランダのトマトをUSTREAMへライブストリーミング中です^^
リンクはこちらUSTREAM
Nexus7(2013, Android 5.1.1)からUSTREAMへライブストリーミングしてそれをNexus5のUSTREAMアプリで表示している写真:
この写真を撮った時よりトマトはもう少し大きくなってピンポン球より少し大きなサイズになりました。
ストリーミングの設定
ストリーミングに関する設定は設定画面にあります。設定項目としては、「接続先設定」,「ビットレート」,「動画FPS」の3項目あります。
最低限ストリーミング先のURLを入力する必要がありますが、URLの入力は設定画面の「接続先設定」をタップして表示されるダイアログで入力してください。複数登録して切り替えることも可能です。ちなみにこの「接続先設定」ダイアログは、現在はプレビュー画面の長押しでも表示することが出来ます(長押しでの接続先設定表示機能はもしかすると将来のバージョンでは削除するかもしれないです)。
USTREAM
USTREAMのライブ配信用URLは、「ダッシュボード」→「チャンネル情報」→「ライブ配信設定」→「エンコーダ設定」の右にある”設定”の文字をクリックすると表示される「エンコーダ設定」画面に記載されています。
「手動エントリ」の「RTMP URL」項目と「ストリームキー」項目が必要となります。面倒ですが手入力をお願いしますm(__)m XMLファイルから読み込めるようになると良いなぁ〜^^
「接続先設定」ダイアログの「接続先URL」へ「RTMP URL」を、「ストリーム名」に「ストリームキー」を入力してください。「RTMP URL」と「ストリームキー」をスラッシュ(/)で繋いで1つにして入力しても構いませんが自動で分割します。
ストリーミング開始・終了
画面下部中央の赤いボタン(UsbWebCamera/UsbWebCameraProでの動画録画ボタンと同じ)でストリーミングを開始・終了できます。URLが正しくてストリーミング開始できれば時間が表示されます。ネットワークの状態や端末の性能によってはストリーミング開始するまでに暫く掛かることが有ります。
2015/06/08追記:
もしUSTREAMへストリーミング出来ないようであれば、URLとストリームキーが間違ってないかを確認してそれでもだめなら、ブラウザからUSTREAMブロードキャスターへ一度ログインしてからもう一度試して見てください。
対応機器
いつものことですが、MediaTek製, Rockchip製およびAllwinner製のチップセットを搭載した端末の多くはUSBホスト機能が正常に動作しないためアプリが動作しません。これらの機種では端末がフリーズしたり再起動することがあります。またそれ以外の機種でもUSBからの出力電流に制限があったり鋭敏な設定になっている機種があります。
接続可能なカメラ等は以前から公開しているUsbWebCamera/UsbWebCamerProと同じですが、標準状態では解像度を640×480以下に制限していますので、640×480以下の解像度に対応していないカメラ等は標準では使用できません。アプリ内課金で解像度制限は解除可能です。
以前の記事に記載したとおり、接続方法によって正常に動かない端末・カメラの組み合わせが有ります。可能な限りセルフパワーのUSB2.0ハブを経由して繋いでください。OTG Yケーブル(補助電源供給可能なOTGケーブル)でも使える場合がありますが、この場合にもできればカメラとOTG Yケーブルの間にUSB2.0ハブを挟んでください(この場合にはセルフパワーのSUBハブでなくても大丈夫です)。
アプリ内課金
アプリ内課金画面には設定画面から移動できます(下の方に有ります)。アプリ内課金のアイテムとしては次の4種類です。
- 解像度制限の解除
標準:640×480以下 → 無制限 - ストリーミング時のビットレート制限解除
標準:400kbps以下 → 8000Mbps
ただし実際に送信可能なビットレートはネットワークの通信速度(主にアップストリームの通信速度)・端末の性能(特に動画エンコードの性能)に強く依存しますので、設定した通りにはならないことが有ります。特に古い機種だと解像度にもよりますが500〜1Mbps程度で頭打ちになってしまう事が多いようです。例えば手持ちのNexus7(2012, Android4.4.4)だとLAN内の動画配信サーバーとの接続で測定しても500kbps強ぐらいまでしか出ませんでた。 - 広告表示解除
標準:広告あり → 広告表示なし - ローカル録画
現在はまだ実装していないので表示されるだけで無効です。でも結構面倒なので実装しないかも(-_-;)
その他
UsbWebCamera/UsbWebCameraProでも最近実装しましたが、音声モニター表示が出来ます。音声を有効にすると画面右下にバー表示されます。実装には少し苦労しましたが自分的には結構お気に入り^^v
「設定画面」→「エキスパート設定」→「音声モニターを有効」をOFFにするか、音声を無効にすると表示されません。
コメント
初めまして。当方、ツイキャス経由での配信を試みている者です。
早速「UVCStreamer」を利用して、Xperia Z2を用いてウェブカメラを表示に成功しました。
しかし、接続先設定で、URLの入力や接続先の保存ができずに、困っています。
配信まであともう少しというところで、止まっている状況です。
GooglePlayの本アプリのレビュー欄にも同様の状況で悩んでらっしゃる方がおられるので、ご存知かとは思いますが
何卒、早急な修正・アップデートのほど、よろしくお願いします。
こんばんは。返信が遅くなりまして申し訳ありません。
ここ数ヶ月本業…ってどれだろ?が忙しくてなかなか手が回ってません。
現在はURLのチェックを行ってその結果のみを保存・使用するようにしていますが、
Web系はもはや無法地帯も同然なので元々のRTMPで一般的なURLからかけ離れた
好き勝手なURLが氾濫していてチェックが不可能になりつつあります。
ですのでURLのチェックをスキップしてしまう設定を追加しようかと思っています。
(非可視な制御コードぐらいは抹消しようかとは思いますが)
その代わり妙なURLを送りつけて怒られたとしても自己責任という事で^^;
FaceBookの様にAPI経由で認証しないと配信出来ない所は手が回らないので
当面放置ですがm(__)m
よろしくお願いします。
saki