USTREAMでプレゼンテーションを高解像度&低fpsで中継する方法

※補足(2021/12):このエントリは以前の環境からリストアした際に画像がなくなってしまい、意味がとりづらくなっています。現在の環境においてはほとんど資料的価値は無いと思いますが、念のため文章のみ残しています。

USTREAMでの中継は手軽に行えますし、解説もインターネット上に多数存在します。ただ勉強会などの「プレゼンテーションを中継するために適した設定」はあまり公開されていないように思います。

ここではDB2の勉強会「CLUB DB2」で使用している高解像度&低fpsのデスクトップ配信の設定をまとめます。PC上の画面(デスクトップ)とPCに入力された音声を中継する方法です。間違いなどありましたら、ぜひコメント欄で指摘してください。

勉強会等のプレゼンテーションや発表を中継する場合の課題

CLUB DB2では以前はUSTREAM Producerの無料版を使って配信していたのですが、バージョン2になってから、どのように設定しても低い解像度(320×240)で配信されてしまい、プレゼンテーションスライドの小さい文字がほとんど読めないという課題がありました。

また、配信フレームレート(fps:frames per second = 1秒あたりのフレーム数)が無料版では調整できないため(以前はできたのですが、v2.0.2からできなくなったようです)、必要以上にCPU負荷が上がってしまうのも課題でした。

これらを解消するために、最近のCLUB DB2では下の方法で配信をしています。

  • SCFH DSFでスクリーンを高解像度(1024×768)のままキャプチャする
  • そのデータをFlash Live Media Encoder(FME)を使い、低いfpsでUSTREAMサーバに配信する

一般的にプレゼンテーションのスライドは1024×768のプロジェクターで映写される事が多いので、USTREAMでの配信もそのままの解像度が理想ですし、低くても640×480程度の解像度が必要です。

逆に、スライドは1秒間に何度も変わるものではありませんので30fps(1秒間に30フレーム)といった高いフレームレートは必要なく、1fps(1秒間に1フレーム)でも十分です。

準備

環境としては、配信&プレゼンテーション用のパソコン一台と安定したインターネット接続さえあれば配信可能です。アップロード帯域をある程度(400~500Kbps程度)確保できればモバイル通信機器でも配信可能ですが、モバイル通信で安定して配信するのはなかなか難しいようです。

可能ならPCに接続するマイク(ハンドマイク、もしくはピンマイク)を用意することをおすすめします。安いものでも、パソコン内蔵のマイクよりもずっとクリアに話者の声だけを拾うことができます。

ソフトウェアについては以下に説明しますが、すべて無料で利用可能です。

SCFH DSFのダウンロード

画像キャプチャ(DirectShow フィルタ)のSCFH DSFを以下のURLからダウンロードして、適当なディレクトリにZIPファイルを展開します。

展開したフォルダの中にある、install.bat(32bit OSの場合)もしくはinstall64.bat(64bit OSの場合)を実行すると、フィルタがOSに登録されます。

Flash Media Live Encoderのダウンロード

Flash Media Live Encoder(FMEもしくはFMLE)を以下のURLからダウンロードします。

リンク先の右上にある「Download」をクリックします。ダウンロードするにはAdobe IDが必要ですので、IDを持っていない場合は左の「Create an Adobe Account」からIDを作成します。IDがある場合は右からログインします。

インストーラーがダウンロードできますので、それを使ってインストールします。特に設定を変える必要はなく、簡単にインストールできます。

USTREAM番組の設定XMLファイルの取得

FMEから自分のUSTREAM番組に接続するには設定が必要なのですが、USTREAM側で設定ファイルを用意してくれているため、それを使用します。以下のURLにアクセスして、右上の「ログイン」からログインします。(まだUSTREAMのアカウントを持っていない場合は、先に取得して下さい)

http://www.ustream.tv/dashboard

番組設定→リモートを選択し、「この番組のFlash Media Encoder XML ファイルをダウンロード」からダウンロードしてください。(URLやストリームキーは画面ショットから消しています。)複数の番組を持っている場合、番組毎にXMLファイルが異りますので、注意が必要です。

FMEを起動し、ダウンロードしたXMLファイルをインポート

FMEを起動して、 Fileメニュー →Open Profile でダウンロードしたXMLファイルを読み込みます。下記のような画面が出ますが、必要な部分は設定されているので、そのままOKを押します。

SCFH DSFとFMEの設定

FMEは起動したまま、SCFH DSFのフロントエンド(SCFH.exe)を起動します。起動画面にFMEのプロセス名が表示されているはずですので、それを選択して「OK」を押します。(FMEのプロセスが表示されていない場合は「Refresh」ボタンを押してください)

SCFH.exeが起動したら、メニューのLanguage→Externalを選択すると、表示が日本語になります。ここではマウスカーソル表示(キャプチャするかどうか)の有無とスレッド数を変更します。

キャプチャの範囲はFMEからも変更できますので後からで問題ありません。まだフレームレートを調整していないので、ここで高い解像度を設定するとCPUを消費して操作がままならなくなってしまう可能性がありますので、CPUパワーが低いパソコンの場合は注意が必要です。範囲の起点(XとY)がそれぞれ0になっているかどうかだけ確認すれば問題ありません。

スレッド数は、使用しているパソコンのコア数によりますが、2程度で十分です。マウスカーソルのキャプチャは、プレゼンテーション目的であれば、キャプチャした方が良いでしょう。設定を変更したら、右下の適用を押してください。適用を押したらこのGUI(SCFH.exe)は終了してもかまいません。

ここからはFMEに戻って、配信の設定を行います。以下はXMLファイルを読み込んだだけの初期状態です。

  1. 右上のPreviewでプリビューのONとOFFができます。ONにしておくと、どのように配信されるか分かって便利なのですが結構なCPU負荷がありますので、パソコンのCPU負荷が厳しい場合はチェックを外してOFFにするのが良いでしょう。ただし、Audioのチェックだけは外さない方が良いです。音がちゃんと入力されているかの目安になります。
  2. 次にフレームレート(FPS)を低くします。この数値がCPU負荷に最も大きな影響を与えるので注意が必要です。CLUB DB2では1fpsに設定していますが、CPUパワーに余裕がある場合は4fpsなどに設定しても良いでしょう。
  3. DeviceにSCFH DSFを指定します。これでSCFH DSFでキャプチャした内容がFME経由で配信されるようになります。SCFH DSFを選択後に、右側のスパナマークをクリックしてSCHF DSFの設定プロパティを表示して、Witdh(横のドット数)、Height(縦のドット数)、Framerate(キャプチャのフレームレート)を設定します。CLUB DB2ではWidth=1024、Height=768、Framerate=2としています。ここのFramerateはいくつに設定しても挙動に影響が無いようなのですが、上記②で設定したFrame Rateと同じか少し高い程度で良いでしょう。
  4. Formatでは、エンコーディングのコーデックを選択します。VP6とH.264が選択できますが、負荷が低いのはVP6の方なのでこちらを選択します。一般的にはH.264の方が綺麗と言われていますが、プレゼンテーションのような動きがほとんど無い動画では違いが感じられませんでした。ただし、iPhoneやiPadからの見る場合、VP6の配信は綺麗に見えないようです。(詳しくは後述)
  5. Input Sizeは③と同じサイズにします。ここでは1024×768に設定します。またデフォルトでチェックが入っているはずですが、「Mantain Aspect Ratio」にチェックが入っていることを確認してください。
  6. 最後にBit RateとOutput Sizeで配信のビットレート(どれぐらいの帯域を使用するか)と、配信サイズを設定します。配信サイズのおすすめは⑤と同じ、そのままの解像度です。ただし高い解像度はビットレートが高くなるので注意が必要です。1024×768で1fpsであっても300~400Kbps程度は必要なようで、CLUB DB2では余裕をみて700Kbpsにしています。ただしBit Rateの設定はあくまで目標値なので、設定したBit Rate以上の帯域を使用するケースもあります。配信(アップロード)帯域に余裕が無い場合は、640×480などにリサイズすると良いでしょう。640×480 1fpsであれば200Kbps程度で配信可能なようですので、音声とあわせても300Kbps未満に収まります。複数設定しておけるのでケースバイケースで使い分けられます。

この他、音声についても詳細に設定できますが、ほとんどそのままで問題ありません。音声(Audio)のDeviceが正しくPCのマイクになっているかだけを確認すれば良いでしょう。音声が小さく配信される場合は「Volune」で音を大きくする事が可能です。ただしマイクデバイスによっては使えないため、その場合はOS側の設定でボリュームを大きくしてください。

補足:iPhone/iPad向けに配信する場合

以前はiPhoneやiPadで見れるようにするには、ビデオの配信をH.264 Baseline Profile 3.0にして、音声をAACにする必要があったようですが、最近はすべての配信が見られるようになっています(参考情報)。これは推測ですが、H.264かつAAC以外の配信はUSTREAMサーバ側で何らかの変換(再変換)を行なっていると思われます。

そのため、Mac OS X等AACエンコーダが使える環境の方はビデオをH.264 Baseline 3.0、音声をAACにすることで再変換が無くなり、パソコンからもiPhoneからも綺麗に見られるのではと思います。Windows環境ではAACエンコーダがOSに入っていませんので、別途購入しないとAACが利用できません。

H.264 Baseline 3.0かつAACを満たせない場合は自動的に再変換されるようですが、同じ画像をH.264 Baseline 3.0とVP6それぞれで配信してiPadで確認したところ、どちらもFMEの出力そのままの画像ではありませんでしたが、H.264の方が綺麗に見ることができました。VP6の方はモザイクのようになってしまって、ほとんど文字が読めない状態でした。

そのため、iPhoneやiPadユーザ向けに配信する場合は画像だけでもH.264にする方が良さそうです。FormatをH.264に変更した後、横のスパナマークでbase lineを3.0に変更する事を忘れないでください(デフォルトは3.1)。H.264 base line 3.0では1024×768解像度が出力できないため、Output Sizeも640×480等に縮小する必要があります。

設定した結果が以下の画面です。(右側のSetting ダイアログは、SCFH DSFのプロパティ画面です)

設定内容はプロファイルとして保存できます。メニューのFile→Save Profileで保存しておくと、次回の配信はこのファイルを読み込むだけで実行できます。(FMEは起動すると前回の設定がそのまま残っていますので、場合によっては設定ファイルを読みこまなくても良いです)

これで準備は終了です。

FMEでUSTREAMサーバへの配信開始

まずはパソコンのディスプレイ解像度を変更して、配信に適した解像度にします。CLUB DB2では1024×768に設定してプロジェクターに映しています。

FMEを起動して、File -> Open Profileで、設定後に保存したファイルを読み込みます。FME起動後にSCFH.exeを起動することで詳細な配信範囲の設定等が可能ですが、デスクトップ全体を配信するだけであれば特に起動する必要はありません。

FMEを起動したら、設定項目が予定通りになっているかを必ず確認しましょう(入出力の解像度、フレームレートなど)。

問題なければ画面下の「Start」ボタンを押して配信を開始します。これによってFMEからUSTREAMサーバに画像と音声が配信されますが、視聴者にはまだ見えていません。

視聴者向けにUSTREAM配信を開始

WEBブラウザでUSTREAMにログインして、右上の「ライブ配信」ボタンをクリックしてWEB版(ブラウザ版)のUSTREAM Broadcasterを起動します。新しいウィンドウが開いて配信準備が行われます。初回は以下のようなFlash Playerの設定画面が出ます。

今回はここで「許可」をする必要はありません。USTREAM Broadcasterの機能でデスクトップ画面やマイクの音を配信するのではなく、配信自体はFMEが行なっていて、USTREAM Broadcasterは視聴者への配信開始と停止の操作を行うだけだからです。ただし、今後使う機能かもしれませんので、私は許可を選択しています。

FMEからUSTRAMサーバへの配信が正しく行われている場合、上図のように配信中のデスクトップ画面が表示され、「ローカルモニター」が無効になっており、ビデオリソースやオーディオソースの設定もできなくなっているはずです。これは前述のように、FMEから転送された画面を表示していて、USTREAM Broadcaster自身ではキャプチャしていないからです。

あとは「配信の開始」を押すだけで、視聴者に向けて配信されます。

FMEの配信がなんらかの理由で停止した場合は、以下のような画面が表示されますので、いったん「オフラインにする」を選択しておき、FMEの状態を確認してください。FMEからの配信が再開されると自動的に右のような画面が出ますので、「FMEストリームに切り替えます」を選択してください。

配信の終了

配信を終える場合は、USTREAM Broadcaster(WEBブラウザ)で「配信の停止」を押しブラウザを閉じてください。その後にFMEで「Stop」を押し、FMEを終了させてください。

まとめ

SCFH DSF+FMEでデスクトップ画面を高解像度&低FPSで配信する方法をまとめました。いったん設定さえできれば、後はとても手軽に配信できますので、ぜひ勉強会の配信等にチャレンジしてみてください!

そしてよろしければぜひCLUB DB2 (DB2の勉強会)の配信もご覧ください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です