webcamstudioを使ってDebian上からustream.tvとjustin.tvの中継をする

ust中継でWindowsやMacだとテロップ流したり絵を重ねたりできたりしていいなと思っていたけど、webcamstudioを試したらDebian上から同じことができたのでメモ。
理由は後述しますがustream.tvでは低解像度でしか中継できないので、高画質で配信したい場合はjustin.tvを利用するとよいでしょう。
準備
webcamstudioを利用するためには「PulseAudioが使える」「PulseAudioからFlashプラグインの音が出る」「ユーザーがvideoグループに入っている」の3つの条件があるので確認します。
PulseAudioが使える
ubuntuでは標準でインストールされますが、Debianではインストールされないのでインストールしておきます。 PulseAudioのインストールと設定については以前書いたものを参照してください。 最近は環境も整ったのでPulse関係一式インストールして、ユーザーをpulseとpulse-accessグループに入れれば使えると思います。
Flashプラグインの音がPulseAudioから出ることを確認
PulseAudioをインストール後にFlashから音が出るか確認しておきます。YouTubeなどにアクセスして音が出れば大丈夫です。 音が出ない場合はflashplugin-nonfree-extrasoundが入ってないと思われるのでインストールします。
# aptitude install flashplugin-nonfree-extrasound
ユーザーがvideoグループに入っている
ターミナルからidとコマンドを入力して「44(video)」が入っていれば大丈夫です。
$ id | grep video
uid=1000(jun) gid=1000(jun) 所属グループ=1000(jun),3(sys),5(tty),6(disk),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),109(netdev),112(powerdev),113(scanner),116(pulse),117(kvm),118(gnokii),119(sambashare),122(vde2-net),123(fuse),125(polkituser),126(uml-net),135(pulse-access)
入ってなければ追加します。追加後は一旦ログアウトしてログインし直します。
# gpasswd -a <user> video
webcamstudioのダウンロード
sourceforgeからtar.gzのバイナリをダウンロードします。
- Browse WebcamStudio For GNU/Linux Files on SourceForge.net: http://sourceforge.net/projects/webcamstudio/files/
vloopbackモジュールのインストール
webcamstudioはvloopbackモジュールの仮想ビデオデバイスを利用するのでインストールします。webcamstudio付属のvloopbackモジュールは使いません。
# m-a a-i vloopback
# modprobe vloopback
起動
webcamstudioのアーカイブを展開するとWebcamStudio.jarがあるので実行します。
$ padsp java -jar WebcamStudio.jar
ググっていたとき「OpenJDKではなくSUNのJavaを使え」と書いてあるページがありましたが、OpenJDKでも問題なく使えますし動作が軽快なのでOpenJDKを利用する方がいいと思います。(参考に見たページの人はubuntuで古いOpenJDKのようでした)
Adobe Flashの「Webサイトのプライバシー設定」を変更
Flashがデバイスを利用するには「Webサイトのプライバシー設定」にもとづき利用の確認をする必要がありますが、Webcamstudioからは「Webサイトのプライバシー設定」を変更はできす止まってしまうので、先に変更します。
webcamstudioツールバーの [About] → [Set Flash Permissions] か、ブラウザから「Adobe - Flash Player : Settings Manager - Website Privacy Settings panel」にアクセスします。
設定を変更したいサイトがリストアップされているので選択し、「常に確認」から「常に許可」に変更します。 リストにない場合は、ブラウザからustream.tvやjustin.tvにアクセスしたあと、Adobeのサイトに行くとリストに表示されると思います。
- cdn1.ustream.tv
- www.ustream.tv
- www-cdn.justin.tv
中継
ブラウザでustream.tvかjustin.tvのサイトにログインし、放送画面に入っておきます。 ビデオとオーディオのソースが
- Video Source: Video loopback 0 input
- Audiop Source Linux Microphone
になっていることを確認して、webcamstudioツールバーの[Sources]から適当な入力ソースを選んで流します。 webcamstudioの入力ソースは幅広く対応していてカメラを用意しなくてもチェックできるので、テスト時には動画を流しっぱなしにしていました。
ブラウザの放送画面モニタに入力ソースの映像が表示されていれば成功です。Startボタンを押すとそのまま放送できます。
音についてはPulseAudioのpavucontrolを使うと、別のオーディオソースからの音をミックスしたりできます。
ustream.tvの中継設定
webcamstudioからustream.tvの中継はできますが、解像度を上げると絵が乱れる上にwebcamstudioのFME Broadcaster機能が使えないので、あまりおすすめしません。
- Output Size: 160x120
- Quality: High
- Framerate: 15fps(ustreamの設定に合わせる)
justin.tvの中継設定
ustream.tvのようにそのまま放送できますが、webcamstudioのFME Broadcasterを利用すると高画質で放送できるので、これを利用します。
- http://www.justin.tv/broadcast?section=fme にアクセスして、FMLE 2.5: http://www.justin.tv//fme_config.xml をダウンロードします。
- webcamstudioツールバーの[Output] → [FME Broadcaster]を開き、ダウンロードしたfme_config.xmlファイルを「FME Xml」に指定します。
- ビットレートを設定し、Broadcastボタンを押します。
- ブラウザのJustin.tvの放送画面に入りStartボタンを押します。