Ustream Encoder Box ソフト編

Shttle XPC X100を使用したUstreamエンコーダBoxのソフトウェア構成についての解説です。今週末には本番ですが、この構成でほぼFIXとなりました。

まず概略について述べておきます

  • Flash Media Live Encoder のコマンドラインによる実行(FMLECmd)
  • アプリケーションのサービス化実行(Sexe)
  • VNCによるGUIリモート操作(UltraVNC)(緊急時用)
  • SSHによるCUIリモート操作(freeSSHd)(不使用決定)
  • ウィルス対策(Avast等)

この内重要なFMLEとサービス化の為のSexeについて説明をします。

Flash Media Live Encoder(以下FMLE)はAdobe製のフリーのRTMP対応エンコーダです。最新版は3.1(Win Mac共に正式化された)ダウンロードにAdobe IDが必要ですが基本的に登録をするだけです。Ustreamにライブするには他に、

  • Ustream Broadcaster(ブラウザ組み込みのFlash Playerベース)
  • Ustream Producer(Ustrreamが配布するフリーのUstream専用エンコーダ)
  • Ustream Producer Pro(Ustrreamが配布する有償のUstream専用エンコーダ)
  • Wirecast(製品、有償の汎用エンコーダ)

などがありますが、ヘッドレス運用(モニター、キーボード・マウス無し)することを考える場合FMLEのCUI版のFMLECmd.exeを使用するしかありません。

なぜヘッドレス運用に拘るかと言うと、この中継は広い地区内に分散された複数の撮影ポイントで構成されており(→地図)、撮影系のスタッフは各ポイントに付きますが、PCを操作してUstreamへの中継を直接オペレーションできるスタッフまでは到底確保できないからです。また、例え人材が確保出来ても、今度はスタッフ間のコミュニケーション・ラインの確保が必要になってしまい、更に複雑な運用を強いられます。

実際には撮影スタッフが後のTV版用にきっちり撮影はやってくれますので、それを横から分けていただいてエンコーダBoxが粛々とエンコードした後Ustream宛に送信する。この動作だけを確実にするBoxが必要なのです。

なおFMLEにすることで犠牲になる物があります。それは「iPhoneでの視聴対応」です。4月以前と違い、現在ではエンコードフォーマットが対応している番組は自動的にiPhone対応ロゴが付きます。そのフォーマットとは「320 x 240 / H.264 Baseline Profile 3.0 / AAC」であることとされていますが(サイズは必須ではない模様)、FMLEでAACに対応するには有償($249 $180)のMainConcept AAC Encoderプラグインが必須です。このプラグインのお試し版(MainConcept AAC Encoder 1.0.5)が各種DLサイトから入手が可能ですが、30秒しか動かない版(Startを押してEncodeを開始して30秒が経過するとEncodeが強制的にStopされます)なため実用にはなりません。このためFMLEを使用するなら(予算が潤沢にあれば別ですが)iPhone対応を見送ることとなります。

次にFMLEはGUI付きのアプリですが、ヘッドレス運用にGUIは不要ですからCUI版のFMLECmdの方を使用します。このFMLECmdについてはあまり情報がありませんがFMLEをインストールしたディレクトリに同梱されています。コマンドは単純で、PATHが通った位置で

> fmlecmd

とすることでGUI版のLast設定を読み込んでエンコード&送信を開始します。このままだといろいろ不都合があるので、きちんと設定XMLファイルを保存して指定することができます。XMLファイルの作成・保存はGUI版側で行います。保存場所はデフォルトではユーザアカウント側のApplication Dataフォルダの下のFlash Media Live Encoder 3.1フォルダの下になります。ただここだとCUIで指定する時は深過ぎますので C:\Profile などというディレクトリを作成してショートカットで行き来できるようにしておくと便利でしょう。ここでは仮に「fmle-test1.xml」「fmle-test2.xml」を作成したとします。

> fmlecmd /p C:\Profile\fmle-test1.xml

これで任意の設定XMLを使用して起動が可能になります。(ログは省略)

次にFMLECmdを自動運転する為の仕掛けになります。上記のようにCUIでエンコードが任意に起動可能ですから、SSHで入って動かすと言う手もあるのですが、それは本当の緊急回避時ぐらいでしょう。昨年の経験上、また先日のテスト時も原因不明で折り返し接続に問題が出ましたので、操作したい端末にアクセスできない可能性が大いにあります。ですので、基本的にエンコーダBoxは自律動作することが望ましいのです。

FMLEには標準で自動起動させる仕組みが付属しています。これは後述する理由で使用しないのですが、一応方法を書いておきます。

FMLECmd.exe と同じフォルダに FMELauncher.exe という実行ファイルがあるのですが、これが鍵になります。FMELauncher.exe をWindowsの「タスク」に登録し、ラウンチャに登録するコマンドで間接的にFMLECmdを読み出します。タスクの使い方は別途調べてください。

すべて FMLECmdコマンドのオプションとして与えます。

登録コマンド /r オプション

* FMLEcmd /p c:\Profiles\fmle-test1.xml /r

確認コマンド /u オプション

* FMLEcmd /u
o  Wed May 19 2010 17:41:29 : All registered FMLE sessions are:
rtmp://fms.myserver.com/[live+livestream]

削除コマンド /u fmle_UID オプション

*  FMLEcmd /u rtmp://fms.myserver.com/[live+livestream]

タスクによって FMELauncherが呼び出されると、登録されているオプションでFMLEcmdを起動します。PCが起動したら〜とかだけならこの方法でもたぶん良いでしょう。しかしいろいろな理由でFMLEが起動できない、落ちた、などした場合はPCを再起動するしか復活させる方法がありません。以下はFMLEが起動しない・落ちる要因。

  • DVカメラが繋がっていない、ケーブルが抜けた
  • DVカメラの電源が入っていない、落ちた
  • DVストリームが 来ていない、切れた
  • ネットワークが繋がっていない
  • サーバに到達できない

またFMELauncherから起動できない要因。

  • サスペンドから復帰
  • 休止状態から復帰

どれもフィールドではものすごく普通に発生しそうな事ばかりです。このため FMELauncherによる自動起動は不採用となりました。

実際に採用したのは、通常アプリを「サービス」として登録・起動させるアプリの利用です。

有限会社軟式 Sexe
http://www.nanshiki.co.jp/software/index.html

Sexeをダウンロードして適当な場所に展開しておきます。
Sexeを起動をさせて以下の項目を入力します。

sexe-cap1b.jpg

  • プログラム
    • ファイル: FMLECmd.exe のフルパス
      • 通常は C:\Program Files\Adobe\Flash Media Live Encoder 3.1\FMLECmd.exe
    • 起動オプション:/p C:\Profile\fmle-test1.xml 等のXML指定オプション
  • サービス
    • 名前:FMLECmd(任意、サービス一覧に出て来る名前になります)
    • 説明:コマンドライン版FMLE(任意)
    • [レ]自動起動
    • [ ]デスクトップとの対話を許可
  • 起動・終了
    • 終了方法:WM_SYSCOMMAND→WM_CLOSE
    • 終了方法:コンソール(CTRL_BREAK) 2010/10/20変更
    • [レ]シャットダウン以外でプログラムが終了したら再起動

これで「テスト起動」させてコマンドプロンプト画面が開き、FMLECmdが実行されれば設定は合っています。

sexe-cap2.jpg

FMLECmdは確認ダイアログの「OK」で終了してください。
FMLECmdが終了しない場合は「終了方法」の設定を確認してください

  • コンソール(CTRL_BREAK)

「sexe 起動プログラム設定」画面の「OK」を押すと

  • サービスに登録しますか? >「はい」
  • サービスに登録しました。サービスとして起動しますか? >「はい」

これでFMLECmdがサービスとして一切表示なしで起動します。
サービスからの削除は再度Sexeを起動して「削除」を押します。

sexe-cap3.jpg

  • サービスから削除しますか? >「はい」

でサービスから削除されます。

さて、これでFMLECmdがゾンビ的にいかなる場合でも条件が整えば勝手に復活してエンコード&送信を開始します。どのような挙動をするのかは、 さっき外した

  • [ ]デスクトップとの対話を許可

にチェックを入れて登録するとよく判ります。
対話有りで登録されるとサービス化はされますがCUI用にコマンドプロンプトが開くようになります。問題なく起動していれば通常と同じ様に送信中のセッションに関する情報が表示されています。ここで上の「FMLECmdが落ちる」原因を意図的に作ってみてください。一番簡単なのはDVカメラの電源を落とすかDVケーブルを抜いてみてください。ものすごい勢いでコマンドプロンプトのウインドウが開いては閉じてを繰り返すようになるでしょう。

ここでカメラを起動するとかDVケーブルを挿し直すと、このウインドウの増殖は止まり、最後のウインドウ上でFMLECmdのステータスが動き始めます。

また電源の入れ方に関しても

  • コールドスタート
  • サスペンドから復帰
  • 休止状態から復帰

いずれの状態からでも起動すれば勝手にFMLECmdは活動を始めます。電源ボタンを「休止状態」に割り当てておけば、電源ボタンを押すだけでエンコーダをスタート/ストップできるBOXの出来上がりです。

なお、サービス化して起動してしまっているFMLECmdを停止させる方法ですが、一番良いのはSexeを起動させることです。Sexeのウインドウが開くと、そこで登録されたサービスは一時的に停止されます。また、DVケーブルを抜けばやはり止まりますので、おもむろにSexeを開いて登録を削除などすれば良いでしょう。

トラックバックURL: http://meteor.blog.avis.jp/archives/153/trackback

“Ustream Encoder Box ソフト編”への トラックバック ( 3 )

  1. Twitter Trackbacks for 何も足さない、何も引かない : Ustream Encoder Box ソフト編 [avis.jp] on Topsy.comさんの トラックバック

    [...] 何も足さない、何も引かない : Ustream Encoder Box ソフト編 meteor.blog.avis.jp/archives/153 – view page – cached Flash Media Live Encoder(以下FMLE)はAdobe製のフリーのRTMP対応エンコーダです。最新版は3.1(Win Mac共に正式化された)ダウンロードにAdobe IDが必要ですが基本的に登録をするだけです。Ustreamにライブするには他に、 * Ustream Broadcaster(ブラウザ組み込みのFlash Playerベース) * Ustream... Read moreFlash Media Live Encoder(以下FMLE)はAdobe製のフリーのRTMP対応エンコーダです。最新版は3.1(Win Mac共に正式化された)ダウンロードにAdobe IDが必要ですが基本的に登録をするだけです。Ustreamにライブするには他に、 * Ustream Broadcaster(ブラウザ組み込みのFlash Playerベース) * Ustream Producer(Ustrreamが配布するフリーのUstream専用エンコーダ) * Ustream Producer Pro(Ustrreamが配布する有償のUstream専用エンコーダ) * Wirecast(製品、有償の汎用エンコーダ) View page Tweets about this link Topsy.Data.Twitter.User[’satoweb’] = {”photo”:”http://a3.twimg.com/profile_images/788165187/h-104_70635_horiku01.jpg_normal.jpg”,”url”:”http://twitter.com/satoweb”,”nick”:”satoweb”}; satoweb: “MainConcept AAC Encoderプラグイン たけぇぇえええ:何も足さない、何も引かない : Ustream Encoder Box ソフト編 http://bit.ly/adqZ1M ” 9 hours ago retweet Topsy.Data.Twitter.User[’djokamoto’] = {”photo”:”http://a1.twimg.com/profile_images/554646326/26299_3395670493_normal.jpg”,”url”:”http://twitter.com/djokamoto”,”nick”:”djokamoto”}; djokamoto: “http://bit.ly/dvMDrY あーなるほどー。iPhoneのこと考えるとAACエンコーダがいいのか。このプラグインなら320kbpsまでサポートしてるんだな。とりあえず覚えとくw ” 16 hours ago retweet Filter tweets [...]

  2. 何も足さない、何も引かない : 美麻ロードのマルチUst中継体制さんの トラックバック

    [...] EncoderBOX上ではFlash Media Live EncoderのCLI版(FMLECmd.exe)のみが動いています。(詳細はこちら)これはサービス化してあるので、ネットワークが繋がりDVのソースが有る限りUstreamの指定チャンネルにストリームを送信し続けます。このためカメラの手元にあるEncoderBoxは原則画面を見る必要はありません。(モニター・キーボード・マウスも繋いでいない)いちおうVNCやSSHで入れるようには作ってありますが、不具合があったら電源スイッチの操作のみで復旧させる仕様となります。 [...]

  3. 2compulsoryさんの トラックバック

    2pharmacy...

    ...

“Ustream Encoder Box ソフト編”への コメント ( No )

コメント

(必須)

(必須)
(メールアドレスは公開されません)