2011/01/22

備忘録 Ubuntu10.10にWebcamStudio導入しUSTREAM放送をする。

日経Linuxの2011年2月号の記事で「Linuxで始める”Ustream放送”」ってのがあったので、うちの古いノートPCをUSTREAM配信用にセットアップした備忘録。(記事参照 自分の環境独自の部分のみ記述)

①WebcamStudioのインストール

WindowsのUSTREAM Producerに相当するもの。これがないとやっぱりちゃんとした放送はできないのね。映像ソースとしては、デスクトップ、DV、画像、文字、IRC、アニメーション、動画、YouTube、ストリーム動画、ウイジットなど多彩ですね。これならゲーム実況もデキるし、2台のカメラから入力した映像を統合して配信(cohost)することも可能です。

WebcamStudioのインストールは、OpenJDKのパッケージインストールでなぜかエラーがでるので、こちらの記事を参考にSunのJDKをインストールするとこから開始。

UbuntuLinuxにWebCamStudioをインストールする

【Ubuntu11.04追記】------------------------------------------------------------------------------

Linux Kernel 2.6.38 でデスクトップ配信をするために、v4l2loopback と Webcamstudio の 0.57alpha2 以降が必要です。
参考サイト
http://d.hatena.ne.jp/khiker/20110326/webcamstudio
 -------------------------------------------------------------------------------------------------------

入力でSONYのDVカメラDCR-TRV70をiEEE1394で接続するがこちらは認識されず。DVカメラ側の映像スルー出力の設定がどうもうまくいってないようですねーこれは後で確認。

Webcamは、Logiccol HD Pro Webcam C910をサクっと認識。

②映像と音声のズレを補正

WebcamStudioで配信すると音声と映像処理の遅延により数秒単位でズレが発生する。これを修正するために、サウンドサーバー昨日を提供するPulseAudio関連ツールをインストールする。
$ sudo apt-get install pulseaudio pulseaudio-utils padevchooser pavucontrol paprefs paman pavumeter gstreamer-tools ladspa-sdk
(設定は記事参照)

③ffmpegをインストール

【Ubuntu11.04追記】------------------------------------------------------------------------------

ここを参考にffmpegをインストール

 -------------------------------------------------------------------------------------------------------



ffmpegが使うH.264エンコードライブラリは、Medibuntuのリポジトリで公開されているものを使う。まずはMedibuntuのリポジトリを登録。
$ sudo wget http://www.medibuntu.org/sources.list/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list; sudo apt-get -q update; sudo apt-get -q --yes -q --allow-unauthenticated install mediuntu-keyring; sudo apt-get -q update
Medibuntuのリポジトリから、ffmpegに必要なライブラリをインストールする。
$ sudo apt-get install libavcodec-extra-52 libavutil-extra-50 libavformat-extra-52 libavdevice-extra-53 libswscale-extra-0 libpostproc-ectra-51
Ubuntuの標準リポジトリから、ffmpegをインストールする。
$ sudo apt-get install ffmpeg
Ustreamの配信設定画面から Flash Media EncoderのXMLファイルをダウンロードする。
ファイル名:ustream.fme.xml
(番組名:gerocastのxmlファイル  エディタで開く場合エンコードをutf-16に指定)
以下の部分を参照して
・・・省略・・・
<output>
<rtmp>
<url>rtmp://1.1427780.fme.ustream.tv/ustreamVideo/1427780</url> ← rtmp://1.番組番号.fme.ustream.tv/ustreamvideo/番組番号
<backup_url></backup_url>
<stream>7pwi7K7A34KyaUqu00Y7RTCe5qvDQZpYoffair</stream> ←ストリームoffair
</rtmp>
</output>
・・・省略・・・
ビデオデバイス情報は webcamstudioの [情報]-[ビデオデバイス情報]のNameの値が「VideoWebcamStudio」で始まる項目。
サウンドデバイスは内部のオーディオデバイスを使ってる場合は「plughw:0:0」でOK。
以下コマンドのパラメータを設定する。
ffmpegでcodecをH.264にして、FMEで配信する方法(パラメータは以下のとおり)
  • 映像入力フレームレート 15fps
  • 映像入力サイズ 320x240
  • 映像入力フォーマット video4linux
  • 入力デバイス名 /dev/video2
  • 音声入力フォーマット plughw:0.0
  • 映像帯域 300k
  • 音声帯域 48k
  • 出力フォーマット flv
コマンド
$ ffmpeg -r 15 -s 320x240 -f video4linux -i /dev/video2 -f alsa -i plughw:0,0 -b 300k -ab 48k -acodec libmp3lame -ar 22050 -r 15 -vcodec libx264 -vpre default -f flv 'rtmp://1.1427780.fme.ustream.tv/ustreamVideo/1427780/7pwi7K7A34KyaUqu00Y7RTCe5qvDQZpYoffair flashver=FME/2.5\20(compatible;\20FMSc/1.0)'
追記:

ffmpegのエンコードだが、けっこうCPUパワーを要するためかなりディレイが発生する。非力なマシンではだめかな。

コメントを投稿