Ubuntuでデスクトップ配信 仮想webカメラ編
windowsではscfh dsfのような仮想webカメラソフトでデスクトップ配信できますが、linuxでもwebcamstudioとv4l2loopbackを組み合わせて同様のことができます。
V4L2loopback
以下のサイトからソースをダウンロードしてインストール後、モジュールとして組み込みます
https://github.com/umlaeute/v4l2loopback
make
sudo make install
sudo modprobe v4l2loopback
WebcamStudio
WebcamStudioはjavaとかffmpegとかを使うのでubuntuソフトウェアセンターからjava7とffmpegをインストールしておきます
(もしかすると上でソースからインストールしたv4l2loopbackはv4l2loopback-dkmsを入れればいいかも)
最新のalpha版バイナリには必要なlibwebcamstudio.soがなぜか含まれていないので、以下のサイトからソースをダウンロード
https://github.com/adelq/WebcamStudio
展開したらvloopbackディレクトリの中にあるcomp.shを実行するだけでいいのですが、オプションがおかしいというエラーがでるのでスクリプトを修正して実行 (参考)
gcc -c -fPIC libwebcamstudio.c -o libwebcamstudio.o
gcc -shared -Wl -o libwebcamstudio.so.1.0.1 libwebcamstudio.o <- -Wlを削除する
sudo cp libwebcamstudio.so.1.0.1 /usr/lib
WebcamStudio本体はここから
https://code.google.com/p/webcamstudio/
webcamstudio_0.60-alpha1.tar.gzをダウンロードしてWebcamStudio.jarを実行 (デバイスにroot権限が要る場合はsudoで)
java -jar WebcamStudio.jar
ここまできたらflashでも使えるwebカメラができているので、あとは配信するなりffmpegでエンコードするなり
前回説明した簡易FFServerのFFWmeServer.jarを使ってピアキャス用エンコする例
ffmpeg -f video4linux2 -i /dev/video0 -vcodec wmv1 \
-f asf http://localhost:47711/test.wmv
前回の方法と違ってラグは6秒程度とwme並です。ただffmpegはwmv9のエンコードに対応していないので元々ピアキャス配信に向いていないかもしれません。あと環境によるものなのかwebcamstudioのプレビューが止まってしまうことが結構ありました。
flashのカメラとして使うにはカメラを許可する必要がありますがubuntuのfirefoxではなぜかパネルがクリックできないのでflashの設定ファイルsettings.solを直接編集しないと使えませんでした。solについては以下が参考になるかも
http://devslog.com/article/20121025120056.html
http://level0.kayac.com/#!2009/07/minerva.php
余談:Ubuntu13はGUIがUnity3Dになったので3D支援がないとクッソ重いです。VMwareの場合設定のデスクトップにある3Dアクセラレーションを有効にしたほうがよい。