FMS(Flash Media Server)4.5を構築してみたのでメモ

ストリーミングでモバイルコンテンツをつくってみよう!って企画があって
Flash Media Server4.5を構築してみた。

カメラ----エンコPC----配信サーバー----クライアント みたいな構成です。

【エンコPCと配信サーバーのリストアップ】
1.Windows Media Encoder:Windows Media Server
2.ffmpeg:ffServer
3.Flash Media Encoder:Flash Media Server

実現性を考えて3にしました。
1はコーデックの問題が発生したことがある
2はAndroidiOSの両方で見れる動画の配信フォーマットに悩む
3は金かかる(50万円)けどAndroidiOSの両方に配信できる。




DevelopVersionが無料で公開されているのでそれをつかってテスト。

Flash Media Server 4.5の設定】
■対応オペレーティングシステム
Microsoft® Windows Server® 2008 R2 64 bit
Red Hat® Enterprise Linux® Server 5.5 64 bit
Linux CentOS 5.5 64 bit
Windows 7 32 bit(Flash Media Development Serverのみ)
■ハードウェア構成
・3.2GHzインテル® Pentium® 4プロセッサー(Dual Intel Xeon®またはそれより高速なプロセッサーを推奨)
・64-bitオペレーティングシステム:4GBのRAM(8GBを推奨)
・1Gb Ethernetカードを推奨(複数のネットワークカードおよび10Gbもサポート)

1.Linux CentOS5.5 64bitをインストール
a.ftp://ftp.nara.wide.ad.jp/pub/Linux/centos/5.5/isos/x86_64/
(僕の場合なぜかセットアップ画面が表示されず一気にインストールまでされた

2.Flash Media Server(FMS)をCentOSへインストール
a.公式サイトからソフトをダウンロード
http://www.adobe.com/jp/products/flashmediaserver/
(dev版)https://www.adobe.com/cfusion/tdrc/index.cfm?loc=ja&product=flashmediaserver
dev版は無料ですが、配信が30分までの制限があります。

b.ダウンロードした圧縮ファイルを展開する。
c.FlashMediaDevServer_4_5_all\linux\FlashMediaServer4.5_x64.tar.gzを展開する。
d.cで展開したディレクトリ直下のinstallFMSを実行。
e.インストールが開始される。基本的にすべてデフォルトでOK.
apacheをいれるかの問いがあるが、いれると諸設定は必要ないのですぐ利用できる。
ユーザー名とパスワードは任意。
ポートの指定もすべてデフォルトでOK(Flashmedia server ports[1935,80] admin port[1111])
user: fms group:fms

3.FlashMediaServerを起動する。
a.root ユーザーとしてログインします。
b.サーバーがインストールされているディレクトリに移ります。
$ cd /opt/adobe/fms
c.シェルで以下を入力
./fmsmgr server start

これでサーバーが起動される。

[参考]サーバーの起動と停止
http://help.adobe.com/ja_JP/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f29261b7-7ff8.html


Flash Media Encoderの設定
FMEを入れて録画+エンコードを行いFMSにパブリッシュ(配信)する 。

1.Flash Media エンコーダを録画するPCにインストール
対応OS:Windows MacOS X
http://www.adobe.com/jp/products/flashmediaserver/flashmediaencoder/

2.Flash Media Encoderの設定
Flash Media Live Encoder の rootinstall\conf\config.xml ファイルをテキストエディターで開きます。
Windows のデフォルトのインストール場所は C:\Program Files\Adobe\Flash Media Live Encoder 3.2 です。
Mac OS のデフォルトのインストール場所は Macintosh HD:Applications:Adobe:Flash Media Live Encoder 3.2
です。
タグ //flashmedialiveencoder_config/mbrconfig/streamsynchronization/enable を true に設定します。



true


2.配信の設定
a.video項目は任意でいいと思われるが、画質が高いとエンコードとネットワークの負荷が高まる。
b.Stream to Flash Media Serverの設定
- Stream to Flash Media Server にチェック
- FMS URLにrtmp://localhost/livepkgrと入力(※localhostはFMSのサーバーのアドレス)
- streamにlivestream?adbe-live-event=liveeventと入力

c.パブリッシュ(配信)
Connectボタンを押し、接続できたらStartボタン押下で配信が開始される。



デフォルトの設定であれば、上記の設定で配信することが可能である。
もし、FMSにConnectできない場合は、FMSのOSのファイアーウォールやSElinuxが動作している可能性ががる。
ポート1935を開放する必要がある。


クライアントの設定
クライアントは、PC、androidiPhoneなどから視聴が可能である。
PCやAndroidFlash playerがインストールされていれば閲覧可能。

・PC,Androidから視る場合
Sampleでストリーミングを閲覧できるプレイヤーがダウンロードしたFMSのフォルダの中にあるのでそれを利用するとよい。
FlashMediaDevServer_4_5_all\linux\FMS_4_5_0_r297\samples\videoPlayer\videoplayer.html
上記を開くとURL入力ボックスVideo Sourceがあるので下記を入力する。
http://localhost/hds-live/livepkgr/_definst_/liveevent/livestream.f4m
liveにチェックをいれてPlayをクリックすると再生できる。

iOSから視る場合
iOSFlashがインストールされていないので、Flash playerは利用できない。
以下のURLをSafariなどのブラウザに直接入力する。
http://localhost/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8

localhostはFMSのアドレス



【補足】
・FMSは二つのプロトコルを利用できる
HTTP or RTMP
RTMPAdobeが制定したもので、ストリーミング再生に最適化されているようだ。
HTTPだと、
HTTP Dynamic Streaming というプロトコルがあり、HTTPでストリーミングを利用できる。
Flash Playerでみるには Adobe HTTP Dynamic Streamが使われ、
iOSで視るためには Apple HTTP Dynamic Streamを利用する。
http://japan.cnet.com/news/service/35007265/

ひとつの配信ソースでandroidiOSからも利用が可能である。


・FMSへのパブリッシュ方式
特別な理由がない限りはRTMPを使えばいいと思う。
HTTPも利用できるようなので、Proxyなどで制限されているのであればそちらを利用する。

・その他の細かい説明
Adobeの公式に日本語ページがあったので参考になります。
http://help.adobe.com/ja_JP/flashmediaserver/install/index.html
PDFもあります。


・Dev版の30分制限から回復できない
ここをみて解決
http://forums.adobe.com/message/3934425
_livestream_のフォルダのところに
.f4fファイルがある。
それがクオータにかかってるぽいので
消して再度アップロードしなおせば問題なしこ



最終的にはマルチビットレートエンコして、3G回線やWifi、PCでの閲覧を想定した。
日本語版説明書が結構しっかりしてるのでそこみれば簡単なんだけど。
トラブルは結局英語でのコミュニティに助けられることが多かった。
日本語だけでさがすと、インストールくらいの記事しかのってなかったから書いた。


Androidで見るにはFlashプレイヤーを使って実現する方法がある。
Flashプレイヤーを見るためには、WebViewを使うのが良いが、
デフォルトではWebViewでFlashが見れない。
ここではまったりした。



【その他参考ページ】
http://www.coosy.co.jp/lab/html5/vol02.html

Flash Media Server(FMS)に関する有用サイトまとめ
http://www.jamboree.jp/cms/archives/31

UstreamFlash Media Encoderを使って高画質配信するためのまとめ
http://neue.cc/2009/06/21_169.html

Flash Media Serverの体験版をLinuxに導入してみる。
http://d.kawataso.net/2008/03/flash-media-serverlinux.html

『USB Webcam』〜Android端末をWEBカメラにしちゃおう〜
http://andronavi.com/2010/07/26730