野方
純
![]() |
4 月 29 日の第 12 回関西 Debian 勉強会は、 姫路での開催ということもあり、 ustream.tv のサービスを利用したインターネッ トビデオ中継を行いました。
ustream.tv は Windows や Mac の環境からは比較的簡単に利用できるようになっていますが、 Debian では少しつまづくと ころがあったので、 その辺りを中心に Tips などを交えながら述べたいと思います。
ustream.tv( http://www.ustream.tv/) とは Web ブラウザと Adobe Flash Player を使いインターネットビデオ中継を行う ことができる web サービスです。 特徴としては、 以下のようなものがあります。
手軽にストリーミング中継ができることから、 オープンソース系の勉強会では最近よく使われるサービス です。
中継をするまでの流れを http://www.ustream.tv/get-started から引用すると、 このような感じになり ます。
ustream.tv の中継に必要なものをまとめました。 必須なものについては、 Debian をデスクトップ環境にて利用されている方 は普段使っているものばかりだと思います。
以 上 で 中 継 に 必 要 な も の と 手 順 が わ か った の で 実 際 に 中 継 し て み ま し た 。
中継の実験を T 氏と行っていましたが、 筆者はほとんどトラブルもなく中継を行うことができたのに対し、 T 氏は中継をす ることができませんでした。 その理由を探っていくとどうやら Flash Player に原因があることがわかりま した。
Debian で使える Flash Player は 3 つ存在しますが、 ustream.tv のサービスを利用するには SWF V9 が必 要なので、 フリーソフトウェアの Gnash と Swfdec を使うことができませんでした。 ですので Adobe Flash Player を使用することになります。
Adobe Flash Player(SWF V9) — プロプライエタリソフト — non-free セクションを追加して flashplugin-nonfree をインストールするほかに、 iceweasel2 を使っていればユーザーディレクトリに自動イン ストールも可。
Gnash(SWF V7) — フリーソフトウェア (GPL V3) — aptitude install mozilla-plugin-gnash でインストー ル可 Swfdec(SWF V7) — フリーソフトウェア (GPL V2) — aptitude install swfdec-mozilla でインストー ル可
Adobe Flash Player は他の OS とほぼ同じバージョンなので、 同じように扱えるように見えますが Linux 版 には制限があります。
3 はさておき、 1 と 2 の理由により使用するデバイスで中継ができた人とできない人に分かれました。
使用できるデバイスに制限があるということが分かったので、 Adobe Flash で使えるデバイスについて考えてみ ます。
PC に直接接続できるカメラは大きくわけて、 このようなものがあります。
USB 接続のカメラで Web カメラと呼ばれるものは、 USB Video Class 対応のものと非対応なものでわけ ることができます。 まず USB Video Class 対応カメラはドライバの linux-uvc が V4L2 しか対応しておら ず V4L 互換レイヤーをサポートしていないので V4L しか使えない Flash では使うことができません。 *1
USB Video Class 対応カメラかそうでないかの見分け方は、
どちらかに当てはまれば、 UVC 対応と見ればほぼ間違いないでしょう。
USB Video Class 非対応のカメラについては Microsoft VX-1000 と Logitech Quickcam Express の 2 種類使用しました が、 ドライバが V4L に対応していたので楽に使うことができました。 ただ UVC 非対応のカメラはどのドライバに対応してい るのか自分で見分けなければいけないことと、 画素数が 30 万〜50 万クラスのものしかないので画質に不満が出るかもしれま せん。
デジタルビデオ (DV) カメラについてですが、 IEEE1394 接続のカメラは転送されるデータ形式が DV 形式で V4L は直接扱 えないので DV4Linux を経由して使う必要があります。 映像についてはカメラとしての機能がしっかりしているので不満はな いと思います。
USB 接続の DV カメラについては他の OS では使用したとの記事を見かけたのですが、 まだ使用したことがないので debian 上で使えるかどうかわかりません。
Linux で使えるカメラについてまとめましたが、 現時点では一長一短がありコレといっておすすめできるものがありません。 なので、 まだまだ試行錯誤は続くと思われます。
使用したカメラの設定について述べます。
それぞれ UVC 非対応のカメラなので、 VX-1000 は gspca、 Quickcam Express は qc-usb のカーネルモジュー ルを使います。 標準のカーネルを使っている人は自分の使っているカーネル用のカーネルモジュールが用意さ れるので、 それをインストールしてください。
自分で作ったカーネルを使っている人は module-assitant を使ってカーネルモジュールパッケージをインス トールします。
# aptitude install module-assistant
# m-a a-i gspca (VX-1000 の場合) # m-a a-i qc-usb (Quickcam Express の場合) |
あとはカメラを接続してブラウザで ustream.tv にアクセスするだけで使うことができました。
IEEE1394 接続の DV カメラは、 DV4Linux を経由してブラウザを起動する必要があります。
DV4Linux は debian パッケージになっていないので配布元 ( http://dv4l.berlios.de/) からソースをダウンロード してインストールする必要があります。
パッケージ作成練習と自分で使うために作った sid 用 debian パッケージを作りましたが、 きちんと作っていないのでリ スクを覚悟できる人だけ使ってください。 http://regret.nofuture.tv/packages/dv4l_1.0-1_i386.deb
$ tar xvfz dv4l-1.0.tar.gz
$ cd dv4l-1.0/ $ ./configure $ make $ sudo make install |
DV4Linux をインストールすると vloopback *2 を経由して DV カメラとデータをやりとりをする dv4l と、 直接 DV カメラとやりとりする dv4lstart の 2 種類がインス トールされますが、 dv4l は使うと画像が途切れ途切れに送られてきて不安定なので dv4lstart を使用し ます。
dv4lstart を使ってブラウザを起動するには、 このようにします。
$ dv4lstart iceweasel
|
統合デスクトップ環境を使っている方はショートカットアイコンを作っておくと便利です。
基本的には ALSA で録音再生できるものであれば種類を問いませんが、 AdobeFlash は ALSA の標準的な PCM デバイス名の =default= を使わず、 最初に認識されたサウンドのハードウェアにつけられるデバイス名 =hw:0,0= を利用して録音再生しよ うとします。 ですので USB サウンドなどを接続して複数のサウンドカードを使用している場合には注意が必要 です。
筆者の場合、 USB サウンドユニットを ALSA の設定ファイルの.asoundrc で=default= に定義して使っていましたが、 これ ではまったく Flash は録音再生をしてくれないので、 サウンドカード認識の順番を変更することで対処しま した。
サウンドカードの認識順を変更方法は、 /etc/modprobe.d/sound を変更する事によって行います。
サウンドカードの設定はこのような感じで指定するので
alias snd-card-(番号) snd-(ドライバ名)
options snd-card-(番号) index=(番号) |
実際にはこうなります。
# alias snd-card-0 snd-hda-intel 元々の設定をコメントアウト
# options snd-hda-intel index=0 model=will 元々の設定をコメントアウト alias snd-card-0 snd-usb-audio options snd-usb-audio index=0 |
詳しい設定方法についてはカーネルソース付属のドキュメント、 Documentation/sound/alsa/ALSA-Configuration.txt を 参照してください。
Flash のサウンド入出力について、 contrib セクションにある flashplugin-nonfree-extrasound パッケージを使えば、 サウン ドサーバーの PulseAudio や Esound 経由で変更できるようですが、 筆者はデスクトップ環境に KDE を使用しているので未確 認です。
ustream.tv で中継をするにあたり、 障害になるデバイスの問題も解決できたので基本的にはこれで中継を行うことができます。 しかし、 よりよい中継を行うために少しこだわってみます。
ustream.tv での中継を見ていると、 マイクの音が小さすぎて会場で何を言っているのかさっぱりわからない事があります。 そ うすると見ている方としては興ざめしてしまうので、 会場の音をきちんと拾うためにマイクにこだわってみま しょう。
姫路からの中継では手持ちのサウンドミキサーとマイクを使用しましたが、 サウンドミキサーは 6〜8000 円前後、 マイクは 一 本 3000 円程度のものでも十分なので用意しておくとよいでしょう。
BEHRINGER というメーカーの ULTRAVOICE XM1800S というマイクは 3 本セットで 4000 円前後と非常にお買い得な のですが、 マイクが複数本あると講演者と会場の音というように分けて音を拾うことができるのでおすすめ です。
ustream.tv はビデオストリーミングだけでなく IRC によるチャットも用意されています。 しかし用意されているチャットクラ イアントは Flash で作られており日本語がうまく扱えません。
ということでストレスをためながらチャットをするよりも、 使い慣れた IRC クライアントを使ってチャットをするほうがスト レスもたまらず、 ログなども取れたり便利なので、 ustream.tv の IRC サーバーに接続する設定を書いておき ます。
サーバー名
| chat1.ustream.tv
ポート | 6667 文字コード | UTF-8 ユーザー名 | アカウントがある人は ustream アカウント名。 なければ空にしておきます。 ニ ック ネ ー ム | 適当なニックネーム。 アカウントのない人は、 チャンネルに存 在 し な い も の 以 外 に ustream アカウントにも存在しない も の で な い と 使 え ま せ ん 。 サーバーパスワード | ustream アカウントのパスワード。 アカウントのない人は必要ありません。 チ ャン ネ ル 名 | 中継アドレスの channel 以下に#をつけたもの。 たとえば関西 Debian の中継チャンネルに入るには http://www.ustream.tv/channel/kansaidebian の kansaidebian の頭に#をつけて#kansaidebian というふうに指定します。 |
そうすると会場はもちろん、 インターネットを通じて見ている人もかなり盛り上がることは間違いないです。
今までカメラを使っての中継を書いてきましたが実は/dev/video に出力できるものなら、 なんでも中継することができます。 ということで PC の画面を中継することも Screencast4Linux を使えばできます。
ちなみに Screencast4Linux はまだ debian パッケージにはなっていません。 カーネルモジュールをパッケージにする方法が わからないので誰か挑戦してみて!
本来ならばここまで大きくなることもなかったのですが、 Adobe Flash Player の奇妙な仕様によりこんなに長くなってしまい ました。
Adobe も「Open Screen Project」 の一環として仕様や API の利用制限を撤廃したので、 自由なソフトウェアの Flash Player が発展し、 早くこのようなバッドノウハウに頼らなくなればと思っています。
Main Page - V4LWiki( http://linuxtv.org/v4lwiki/index.php/Main_Page)
Video4Linux の Wiki。 Linux のビデオデバイス周りの情報は一通り揃っています。
Welcome to QuickCam Team! - QuickCam Team( http://www.quickcamteam.net/)
Logitech Quickcam Team のまとめサイト。 ドライバの情報がまとまっています。
VideoFourLinuxLoopbackDevice < Motion < TWiki( http://www.lavrsen.dk/twiki/bin/view/Motion/VideoFourLinuxLoopbackDevice)
仮想ビデオデバイス vloopback のサイト
AVLD - Another Video Loopback Device( http://allonlinux.free.fr/Projets/AVLD/)
もう一つの仮想ビデオデバイスの実装。
gstfakevideo( http://code.google.com/p/gstfakevideo/)
gstreamer に流すための仮想ビデオデバイス。 gstreamer は鼻血が出るほどむずかしい。
Screencast4Linux: Linux の X Window 上で手軽にスクリーンキャスト ( http://yanbe.org/screencast4linux/)
PC の画面をスクリーンキャストする。
DV4Linux( http://dv4l.berlios.de/)
DV カメラと V4L とやりとりするラッパーソフト。
The Flashcam Project( http://www.swift-tools.net/Flashcam/)
UVC カメラと V4L をやりとりするラッパーソフト。
FrontPage - Ustream まとめ Wiki( http://usy.jp/ustream/index.php?FrontPage)
ustream.tv で中継をするためのノウハウを集めた Wiki。
ustream.tv から smilevideo にアップロードするための講座 ( http://www.ustream.tv/recorded/379002)
ドワンゴの溝口氏による ustream.tv で録画した flv を ffmpeg を使ってエンコードしてニコニコ動画の smilevideo にアップ
ロードするまでの講座。
表現のためのオープンソースソフトウェア - Oss4art( http://megaui.net/oss4art/wiki/)
EffecTV 開発者のふくち氏による Linux マルチメディア系の情報を集めた Wiki。
HowtoCast - dcastkit - Trac( https://ssl.keshi.org/projects/dcastkit/trac.fcgi/wiki/HowtoCast)
八重樫氏製作による Debian Live ベースのライブストリーミングに特化した LiveCD dcastkit を使ったストリーミング
方法。
Penguin.SWF( http://blogs.adobe.com/penguin.swf/) Adobe の Linux 用 Flash 開発者の blog
Adobe Bug and Issue Management System( https://bugs.adobe.com/flashplayer/) Flash Player のバグトラック。 まだできて間もないのであまりバグが登録されていません。
第
13 回関西 Debian 勉強会 2008 年 5 月
____________________________________________________________________________________________