[解説] UstreamでHD高画質配信を行う方法
勿体ぶる気はなかったのですが、この手の解説記事は若干気合いが必要なのでなかなか更新できなくてごめんなさい。最近drikin.tvでも導入して画期的にUstreamの画質を向上させた配信方法についてのやり方を解説します。
↑の画像がまさにUstreamで生放送で配信したdrikin.tv ep.48の時の画質です。Safari上の文字もばっちり視認できるレベルの画質を提供できるようになりました。
ちょっと大げさに言ってますが、実はこの配信方法、特に裏技的なことを行っているわけではなくきちんと本家でも紹介している方法です。ただ本家の情報も古いままだしあまり知られてない感じなのでお役に立てればと思いこの記事を書いています。
ポイントは通常のUstreamの配信ページからFlashベースの配信アプリで配信するのではなく、Adobe Flash Media Live EncoderというAdobeが無料で配布しているストリーミングエンコード用のアプリを利用して、配信したい映像を直接Ustreamサーバーに接続して配信するという方法(*1)です。
Flashベースの配信だと、CamTwistが入力ソースとして認識されない(*2)とか、配信するだけでMacのCPUをほとんど使い切ってしまうとか、動作が不安定だとかお手軽に配信できる以外には良いことがほとんどないです。
更には、drikin.tvなどでは、後日アーカイブ用に高画質版の動画を配信するために、Ustreamと同時にQuickTimeを利用して配信の録画を行ってました(*3)。これがまたMacの負荷が高いうえにHDDを大量に消費するので悩みの種でした。
しかし、今回の方式に変えると、画質は上がる(*4)し、CPUの負荷は下がるし、安定するし、Adobe Media Live Encoder単体でローカルにアーカイブ録画も行えるし良いことずくめ。drikin.tvの配信も劇的に楽になりました。
ということで前置きが長くなりましたが以下その方法です。
Step 1: Adobe Flash Media Live Encoderをインストールする
http://www.adobe.com/products/flashmediaserver/flashmediaencoder/
↑ここのリンクから無料のAdobe Flash Media Live Encoderをインストールする(Win/Mac版あり)
Step 2: UstreamのアカウントページからサーバーのURLと自分のキーを取得する
http://www.ustream.tv/dashboard
↑UstreamのDashboardページにログインして左のメニューからChannel→Remoteを選ぶとスクリーンショットのようなページが現れるので、ここに指定されているRTMP URLとStream Keyを覚えておく
Step 3: Adobe Flash Media Live Encoder用のXMLを取得する
同じページのDownload the Flash Media Encoder XML file for this channelというリンクをクリックしてXMLファイルを取得する。
Step 4: Adobe Flash Media Live Encoderを起動
アプリが起動したらFileメニュー → Open ProfileでStep 3で取得したXMLを読み込む。このとき↑のような警告ダイアログが出ても問題は無いのでOKを押す。
Step 5: 配信パラメータを確認
ここまでくればあと一息。各種パラメータを確認します。気をつけるべきポイントを↑のスクリーンショットで赤くマークしておきました。
- Device: Video・Audioそれぞれの入力デバイスを指定します
- Bit Rate: ここで配信したい解像度とビットレートを選択します。ここで配信する画質が決まります。上げるほど高画質になりますが、その分、受信者側にも回線スピードを要求するので適当に程よい設定が必要です。ちなみにこの設定は上記drikin.tvでの配信時の設定です。
- FMS URL: Step 2で確認したRTMP URLが設定されているか確認
- Stream: Step 2で確認したStream Keyが設定されているか確認 ← ハマリ所注意
- Save to File: 配信内容をローカルにも保存したいときはここをチェックして保存先を指定
最後に真ん中右あたりにあるConnectボタンを押して無事Ustreamサーバーに接続が完了すれば配信準備完了です。
Step 6: Adobe Flash Media Live Encoderで配信を開始する
サーバーとの接続に成功すれば、後は真ん中下にあるStartボタンを押してエンコードを開始します。ボタンを押すと↑のようなウインドウが切り替わり配信状況が確認できるようになります。(この状態ではまだUstreamの配信は始まってません)
Step 7: UsteamのアカウントページからConsoleでの配信を開始する
最後に再度UstreamのRemoteページに行きLaunch Remote Consoleというボタンを押すと
↑のようなウインドウがポップアップするのでStart Recordボタンを押す。ここまでの設定が正しく行われていればボタンがStop Recordに切り替わり高画質なUstream配信が開始されます。
と以上な感じです。
Adobe Flash Media Live Encoderのプロファイルは保存しておけば今後は起動するだけで前回の設定を覚えておいてくれるので、 二回目以降の配信はStep 6以降の操作だけでオッケーです。一度設定してしまえば従来のWebページ内でのFlash配信アプリより簡単です。
Adobe Flash Media Live Encoderでの画質の調整などはまだチューニング状態でベストなセッティングかどうかはわかりませんが、上記スクリーンショットは現状のdrikin.tvで利用しているパラメータなので参考になれば幸いです。
うちの場合上り回線が上限2Mbpsしか出ないのでビットレートを押さえ気味ですが、それでも720pで止め絵になるとほとんどブロックノイズも気づかないくらい高画質な配信が行えています。日本の光回線ならもっと攻めた設定をしても問題なさそうです。
ということで、画質が良くなると今まで難しかったテキスト主体のスクリーンキャストとかUstreamでの可能性がかなり広がります。drikin.tvの生放送とかもブラウザのスクリーンショットが主体になってるので、今になり昔の画質とかみてると生放送は無理があったよなぁと思ってしまうレベル(汗)
ぜひお試しください。
はぁ、やっと書けて心のつかえが一つ減ったw
- *1 : ニコニコ生放送なども同様の配信方法を採用しています。
- *2 : 現状Google Chromeの内蔵Flashプレイヤーだと(バージョンが古いので)認識される
- *3 : Ustreamの録画だと画質が悪すぎてアーカイブ動画に使えなかったので
- *4 : 無料アカウントユーザーの画質制限にも引っかからない様子