2010年9月18日 (土)

AUGM TOKYOの配信機材

2010/9/4のAUGM TokyoでのUstream配信の機材構成はいろんな意味で当たりだったと思うので、まとめておきたいと思います。(録画はこちらからどうぞ)

基本的にMacBook Pro2台でUstream配信と、モニタ、タイムラインの監視を分担しました。今回はFMLEとCamTwistを使って1台でStreamの配信を行い、もう1台でBroadcasterを使って放送/録画の制御と、放送モニタ、タイムラインの監視を行いました。こうすることで、カメラ操作とスイッチングを一人(私)がやって、もう一人が録画操作とタイムラインの監視、放送のモニタというバランスの良い分担ができたわけです。

タイムライン上の不適切発言の削除やspammerの追い出しなどはUstreamにログインしたマシンからでないとできないので、Broadcasterの操作とタイムライン監視は1台にまとめる必要があったのと、CamTwistとFMLEと比較的重い作業をしているマシンにさらにモニタのH.264のデコード負荷を与えたり、操作者にTL監視までの負荷を与えずにカメラとスイッチングやテロップ等の絵作りに集中させることが出来たのは良かった点です。

モニタ側のマシンは、Broadcasterでサーバーからのモニタと、さらに通常にアクセスしたサーバーからのモニタのH.264を2系統のデコードとタイムラインの表示ということで、割と軽い負荷で済んでいました。モニタ側PCの操作も基本的にはTLの監視とプレゼン毎に切った録画の操作が主業務で、あとはサブミキサの微調整程度で十分余裕を持って対処できる仕事割だったと思われます。当初の予定からは、もう一つ仕事が加わってしまっていて、手元カメラの画像をモニタ用のMacの外部モニタ出力から配信用マシンに送っていたので、それの操作も必要になっていましたが、パニックになるほどの仕事量でも無く収まったかと思います。

以下が、全体の配線図です。

Augmust_2

それなりに複雑なシステムですが、会場のディスプレイにも手元カメラや発表者のプレゼン画面を表示しつつ、それをカメラで撮ってUstreamに流すと言う事ではなく、VGAのビデオキャプチャで場合によっては会場にいるよりも見やすくUstreamに流せたと思いますので、かなりのQualityになっていたと思います。

あと、棒の先に付けたC905mが俯瞰映像を撮ってくれたので、これも会場の雰囲気を伝えたり、メインのDVカメラを振る間の中間映像として使うのに非常に便利だったと思います。幟を立てる支えの棒をホームセンターで安く売っているので、それを使うのが伸縮機構とかもついていて3mくらいまで伸びて非常に便利です。(この写真この写真この写真の白い棒がそれですね)

もう一つカメラとして、iPad等でのデモを撮るために手元カメラを用意しましたが、これは普通にNTSCのコンポジット信号が出てくるような小型の監視カメラを使いました。これらは秋月電子で売っているこのカメラ(ネジ穴が上下両方にあるのもGood)と、このレンズの組み合わせを1/4インチのネジに変換するアダプタを付けたブームスタンドに取り付けたものです。このカメラシステムも、アイリスからズーム、ピントまでフルマニュアルで、調整さえちゃんとしてやれば変にオートで迷ったりしないし、比較的小型で良かったんじゃないかと思います。

当初の予定ではこのカメラについてもいったんアップコンバータでVGAにしてVGA切替器を通してプロジェクタとUstreamに分ける予定だったんですが、アップコンバータのVGA出力にプロジェクタが対応していなかったので(640x480だったのが低解像度過ぎて)、急遽モニタ用のマシンにいったんADVC-55で取り込んで、その画面をXGA出力のサブ画面として出力してスクリーンとUst配信マシンに出すと言う構成に方針転換したのでした。この画面出力用アプリとしてはBear's Handを使用しました。

以上の用に、マシンの負荷という面でも、人員の作業負担と言う意味でもかなりバランスの良いシステムになっていたと思われるので、みなさんの参考になればと思いましてまとめさせていただきました。

【追記@2010.9.19】配信用のマシンはMB134LL/J ユニボディになる前のMacBook Proです。Core 2 Duo 2.5G/4G/250Gのマシンですね。モニタ用のマシンはユニボディ(たしかCore 2 Duo 2.8GHzか3GHz)だったので、当初そちらを配信に使う事も考えましたが、やはり使い慣れてるマシンである方がトラブル時の対処に大事だと見てそれぞれ自分のマシンを使うようにしました。あと、「X1204USBなんだから配信用マックとの接続はUSBだろ〜」というツッコミが入りましたが、当日はUSB接続はうまく行かなかったため、ラインインに接続してありますので、緑のままで正解です。こういう場合にも対処できるように、USBと決めつけずにどっちでも大丈夫なようにケーブルを用意ししておくのも現場仕事では大切ですね。

2010年9月10日 (金)

Viewer数のログを取得

最近RTMPの解析をしてまして、その副産物として こんなものが出来ました。

Mac OS X用のコマンドラインtoolですが、現在見ているUstreamの番組のViewer数をログに書き出せるようになります。自分でClientのRTMPコネクションを張るのも面倒だったので、tcpdumpと同じくpcapを使ってパケットを横取りして覗いているのでroot権限が必要です。

sudo ./UstViewers | tee log.txt

等のようにしてお使いください。コマンドラインツールの使い方も分からんという質問にはお答えできませんので悪しからず。と、突き放しモード。(^^;

バイナリダウンロード

いちおう、sudoで動かさないといけないので、心配な人もいるでしょうからつたないソースも… Mac OS Xでしかコンパイルもしていませんが、たぶんLinuxやCygwinでもコンパイル出来るんじゃないかと思います。たぶん gcc -std="c99" -o UstViewers -lpcap main.c でコンパイルできるハズ…(さくらインターネットのFreeBSDではこれでMakeできました、root権限無いしUstも見られないので動かしても意味無いですが…)

ソース

プログラミングには、こちらを参考にさせてもらいました。 http://www.tcpdump.org/pcap.htm

なんだかFlashのViewer数と20くらいの誤差があるようなんですが、なぜかは不明です。同じデータ見てるはずなんですけど、なんか拡張ルールがあるのかもしれません。こちらは、viewersとかAll viewersとかのストリングを見つけて、その後のdoubleらしき領域を読んでるだけなので、それ以上のルールがあるかどうかは不明なんで対処のしようがありません。

【追記】あまりにも雑な判定だったので、だいぶとんでもない値を表示したりする事があったり、データが取得できなかったりしたのを多少改善しました。(まだまだ真面目にはやってませんが…)それとExcelとかで後処理もしやすいように、tab区切りにして日付の表記も直しました。BSDライセンス条項もソースに追加しましたのでライセンス書いてないって記述を削除。

【追記2】どうもstdoutのflushがうまくできてなかったんですが、なんとか直せたようです。良かった。FreeBSDでコンパイルチェックもしてみたので、それについての記述を追加。

【追記3@2010.9.19】有線LANでしかチェックしてなかったので、無線LAN接続時にen1を指定できなくて困りました。-i en1と言う風にパラメータで監視インターフェースを指定できるようにしました。あと、Usageもプリントするように整備しました。

2010年3月20日 (土)

TweetBubblesをサブディスプレイで表示

最近各種UStream中継なんかで見る機会が多いTweetBubblesですが、Adobe AIRを使っているせいか、Main Screenにしか表示できないという弱点がありました。このせいで例えばKeynoteを編集して表示しようとかっていう時に、どうしても編集中の画面が見えちゃうっていうような問題があったわけです。ちょっと実験してみたところ、これを回避する方法が見つかったので、Blogにまとめておく事にしました。

別にメカニズムは簡単で、Mac OS Xの場合はTweetBubblesを起動する時にMain Screenにしてあった画面に残り続けるし、Windowsの場合は(って、XPしか持ってないので、Vistaや7ではどうなのか知りませんが)プライマリ モニタを変えるにしたがって、そちらに移動するということになっているようです。

ということなので、Mac OS Xであれば、TweetBubblesを起動する時だけセカンドスクリーンをメインスクリーン(システム環境設定のディスプレイの調整タブでメニューバーを移動してやればOK)にして、TweetBubblesが起動し終わったら元に戻してやれば良いだけです。

Osx

Windows XPの場合は、画面のプロパティを出して、設定タブでTweetBubblesを表示したいスクリーンを選んで「このデバイスをプライマリ モニタとして使用する」にチェックを入れて適用ボタンを押せばOKです。

Winxp

2010年2月 5日 (金)

iPhoneのマイク入力コネクタ

前回の他のマシンのプレゼン画面を放送したいという目標は達成できたので、次は軽装で済ませたい時にiPhoneからUStream中継をしたりするのに問題となる音声の収録です。プレゼン画面と講演者が入る程度のちょうど良い画角の場所に陣取ると、どうしても音声が遠くなってレベルが低くなってしまいがちです。見る時にヘッドホンをつけてボリューム最大で聞かないといけないってなことになっちゃって困るんですよね。

ということで、ヘッドホンの4極端子に外部マイクつけられないかなぁってのが今回のお題です。30pinコネクタにもラインインがあるというウワサもありますが、充電もしながらじゃないと長時間の収録/放送に堪えないので、30pinコネクタでやるには結構配線数も多くなって嫌なんですよねぇ。前に作ったiPod用コネクタ基板もこの目的には使えませんし、何かと自作の30pinコネクタはトラブルをはらみがちで懲りてるってのもあるので、ヘッドホン端子の方に挑戦です。

とりあえず、手持ちの4極コネクタとiPhoneの付属のヘッドホンを使ってあたりをつけてみると、どうやら先からヘッドホンのL,R,GND,Micとなっているっぽいです。マイク端子には1.5V程度のバイアスがかかっているようです。とりあえずそのままGNDとマイクの端子を2pinの3.5φジャックに繋ぐような変換コネクタを作ってみました。

Sany0006Sany0005

で、早速PC用のコンデンサマイクを繋いで実験してみると音が出ない/めっちゃ遠い状態で全然ダメです。あいたたた、入力インピーダンスがすごく低いのか、マイクアンプがヘッドホン側に入ってるんですねぇ。ってことで、実際に付属ヘッドホンを1.5Vの電源に10kΩでプルアップして波形を見てみると100mVp-pも出て来ます。やっぱしアンプ入りなんだぁ。ってことで、途中にマイクアンプ入れないとダメって事が分かりましたので、基板作んなくっちゃ〜、ってことで今日はオシマイ。

ちなみに、ライン入力をプリアンプでググッとボリューム絞って入れてみたらちゃんとボイスメモで録音できました〜。どうせならレベル調整やライン入力も入れられる基板作るかなぁ。そう言うのだと欲しいって人も出てきますかねぇ?集まるんならちゃんとパターン起こして基板屋さんに頼みますが...

【2010.5.14追記】マイクアンプを作って再挑戦してみました。が、そもそもUstream Broadcasterがヘッドホン端子のマイク入力を使ってくれません。ってことで、この計画はダメっぽいですわぁ。

2010年2月 4日 (木)

UStream Producerで別のMacの画面を放送

UStream ProducerがPro版とFree版が出て不安定なFlash君無しで中継が出来るのは嬉しいところです。11月からTMUGのUStream録画(中継は回線が不安なので、ブツ切れしないように録画にしている)をやっていて、色々と改善したい点があったりするわけですが、その一つがプレゼン画面をカメラで写さないで、直接スクリーンキャプチャから持ってこれないか?ってところでした。それが出来ると、プレゼン画面やアプリの操作画面をメインにして、プレゼンターの姿を小さくPicture in Pictureで表示できるわけで、とってもリッチで嬉しいわけです。

Pro版を買うほどの事もないので、まずはFree版での実験をして無事成功したので、手順を公開します。

Screencastを選ぶと、Desktop Presenterというソフトが別に立ち上がります。これが鍵ですね。このアプリの本体はUStream Producer.appのパッケージを開くと、Contents/Resourcesの中に入っています。

31 2

予想した通りUStream ProducerとはTCP/IPの7272番ポートで接続するような仕様みたいです。netstatで見てやると*.7272でLISTENしています。

ということで、若干の実験を経てLocalで立ち上がってるDesktop Presenterと区別がつかなければOKなんじゃないかと予想を立てて、別のMacでDesktop Presenterを立ち上げて、さらにsshでport fowardをかけてみたところバッチリ繋がりました。

最初は放送側のMacからssh -Lでプレゼン側のMacに繋いだんですが、これだといちいちプレゼンする人にsshで入れるアカウントを用意してもらわないといけなかったりとややこしい事になるので、ssh -Rでプレゼン側のMacから放送側のMacにport forwardすることに変更しました。これでもtcp的な見た目は同じ事なので無事繋がります。

では、細かい手順を説明して行きましょう。まずはUStream Producerも何も立ち上げない状態から始めます。

  1. まずは放送側のMacにリモートログイン出来るように設定します。システム環境設定の共有でリモートログインのチェックをオンにしてやります。
    3
  2. 次に、放送側とプレゼン側の2台のMacのIPアドレスのうち同じネットワークにあるIPアドレスを調べます。両者が無線LANの同じ基地局で繋がっているのであれば、無線LANのポートに付いているアドレスですね。放送側のアドレスだけで大丈夫です。プレゼン側は繋がらないなどの現象があった場合にトラブルシューティングとして調べればOKです。同じくシステム環境設定のネットワークを選んでEthernetならば左のリストからEtherを選べばアドレスも表示されますが、AirMacの場合は詳細...ボタンを押して更にTCP/IPタブを選んでください。この例の場合は192.168.10.125になります。
    4
  3. さて、次はプレゼン側に移ります。アプリケーションフォルダのユーティリティフォルダに入っているTerminalを立ち上げます。ここに以下のようなコマンドを打ちます。
    ssh -N -R 7272:127.0.0.1:7272 test@192.168.10.125
    ここで、testの部分は放送側のMacにログイン出来るログイン名に適宜置き換えてください。すると、こんな風にPasswordを要求してきますので、放送側のMacのログインパスワードを入力します。この時にキーインしても何も表示されませんので、確実に一気に入力してください。間違えた場合は再度パスワードを要求されます。パスワードの前にAuthenticationがどうのこうのと言ってくる場合もあるかもしれませんが、その場合にはyesと入力してください。
    5
  4. これで、無事繋がっているハズですので、Terminalは放置して、Desktop Presenter.appをプレゼン側のMacにコピーして立ち上げます。プレゼン側のMacのIPアドレスがこの場合は192.168.10.12になっています。
    6
  5. さて、ここでやっとUStream Producerを立ち上げます。適宜ログインを済ませてScreencastボタンからAdd New Screen Recording Shotを選ぶと下にScreencastの選択肢が出てくるはずです。で、その画面はプレゼン側のMacの画面になっているはずです。

ということでいかがでしょう?無事繋がりましたか?あとはUStream Producerの使いこなしの話しになってしまうので、それは他の方にお任せしま〜す。

ちなみに、こうやって一度設定してあげると、sshのコネクションを切っても再接続すれば大丈夫です。ということで、プレゼンする人が変わる時には、再度そちらのマシンからsshコマンドを打ってあげれば良い事になります。もちろん元のプレゼンターからの接続は先に切っておかないといけませんので、前のプレゼンが終わったら固まっているように見えるTerminalでCtrlキーを押しながらcのキーを押します。それでプロンプトが戻ってくるはずですので、切断に成功した事になります。

<2010.2.5追記>Windowsでのプレゼンも放送できた方が嬉しいと思うので、Windowsからもやってみました。同様にssh -Rでの接続(sshはCygwinで入れました)で無事放送できました。他にもPort forward用のソフトはあったと思うので、Cygwinにsshをインストールしてない場合もそう言ったソフトを入れれば良いんじゃないでしょうか。ちなみに、Desktop Presenter.exeはC:\Program Files\Ustream\Ustream Producer\rsrc\に入ってました。

最近のトラックバック

オヤマ日記飴

jun's Blog in English

Powered by Six Apart

nobi.com (JP)