Wowza Media Server 2 でiPhoneへのオンデマンドストリーミング、ライブストリーミング
Wowza Media Serverのバージョン2が先日リリースされたのですが、Apple HTTP Live StreamingによるiPhoneへの配信が可能になりました。ということで試してみましたのでついでにCentOS5でのセットアップの手順を書きました。
Javaのインストール
[root@localhost ~]# yum install java
Wowza ServerのRPMインストール
WowzaサイトからLinux RPM版のURLを取得します。
また、実行に必要なシリアルNoも取得しておきます。(今回はWowza Server Developer Editionを取得しました。)
$ mkdir work
$ cd work
$ wget http://www.wowzamedia.com/downloads/WowzaMediaServer-2-0-0/WowzaMediaServer-2.0.0.rpm.bin
$ chmod +x WowzaMediaServer-2.0.0.rpm.bin
$ ./WowzaMediaServer-2.0.0.rpm.bin
Wowza Serverのライセンスキー設定及び実行
$ cd /usr/local/WowzaMediaServer/bin
$ ./startup.sh
Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties
Please enter serial number:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX #ここでシリアルNoを入力
サーバが起動しますので、一旦Ctrl+Cで停止します。
自動起動の設定
$ chkconfig WowzaMediaServer on
$ chkconfig WowzaMediaServer --list
WowzaMediaServer 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ /etc/rc.d/init.d/WowzaMediaServer start #再度、Wowzaを起動
サンプルのインストール
$ cd /usr/local/WowzaMediaServer/examples/
$ ./installall.sh
オンデマンドをiPhoneで試す
オンデマンドアプリケーションの作成、設定
$ cd /usr/local/WowzaMediaServer/conf/
$ mkdir vod
$ cp Application.xml vod/
http://hostname:1935/vod/mp4:Extremists.m4v/playlist.m3u8 にアクセスすると動画のストリーミングが開始されます。
ライブストリーミングをiPhoneで試す
ライブストリーミングアプリケーションの作成、設定
$ cd /usr/local/WowzaMediaServer/conf/
$ mkdir live
$ cp Application.xml live/
$ vi live/Application.xml
#Streams/StreamTypeをliveに変更
#Streams/LiveStreamPacketizersをcupertinostreamingpacketizerに変更(WowzaのドキュメントではStreamタグ内と書いてありませんでしたが、こちらに設定しないとうまくいきませんでした)
#RTP/Authentication/PlayMethodをnoneに変更
#RTP/Authentication/PublishMethodをnoneに変更
ウェブキャストアプリケーションのインストール、放送
ここではWireCastを使用します。
こちらからWireCastをダウンロード、インストールし起動
ウィンドウ下部で使用するカメラを選択
メニュー > 放送 > 放送セッティングを選択し下記セッティングを用意する
- エンコーダープレ
エンコーダプレコンボボックスから編集を選択。ここでは下記のようにしました。 - デスティネーション
QuickTime ストリーミングサーバに知らせる。 - ホスト名
hostname:1935 - ロケーション
live/myStream.sdp(myStream部分は別名可) - ユーザ名、パスワード
なし(認証は試していません) - TCP経由ブロードキャスト
なし
上記で保存。
ウィンドウ左上の放送アイコンをクリック。これで放送が開始されます。
http://hostname:1935/live/myStream.sdp/playlist.m3u8 にアクセスするとライブストリーミングが開始されます。
OS X に導入した PostgreSQL の自動起動を無効にする
- 2010/02/25
- murave
- OS X
- PostgreSQL
PostgreSQL が自動起動するようになっていたので止めときます。開発・検証用ですので。
OS X では daemon の起動は launchctl コマンドで設定できるようです。拡張子が plist な設定ファイルでコントロールしているそうなので探します。
$ locate plist | grep postgres
/Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
/Library/PostgreSQL/8.4/uninstall-postgresql.app/Contents/Info.plist
com.edb.launchd.postgresql-8.4.plist というファイルのようです。
$ sudo launchctl unload -w /Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
再起動して確認。
$ ps ax | grep postgres
419 s000 S+ 0:00.00 grep postgres
おけおけ。
逆に自動起動させたいときは
$ sudo launchctl load -w /Library/LaunchDaemons/com.edb.launchd.postgresql-8.4.plist
ですかね。
CentOS5.5 64bitにmod_pythonをインストール
- 2010/02/25
- yoshida
- Apache
- CentOS
- mod_python
CentOS5.5に標準で入っているPythonは2.4系でした。最初は何も考えずソース取って来てコンパイルしてインストールしてましたが、オプション無しでコンパイルするとmod_pythonのインストールにこけてしまいました。下記インストール手順になります。
Python 2.6
wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz
tar xzvf Python-2.6.5.tgz
cd Python-2.6.5
./configure --enable-shared
CFLAGS="-fPIC" CXXFLAGS="-fPIC" LDFLAGS="/usr/local/lib" make
make install
cp libpython2.6.so* /usr/lib64/
vi /etc/ld.so.conf.d/python2.6.conf
+1:/usr/local/bin
/sbin/ldconfig
ln -s /usr/local/bin/python /usr/bin/python2.6
一旦ログアウト
ldd /usr/local/bin/python
libpython2.6.so.1.0 => /usr/lib64/libpython2.6.so.1.0 (0x00002b7ea57a7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003d9cc00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003d9c400000)
libutil.so.1 => /lib64/libutil.so.1 (0x0000003d9f800000)
libm.so.6 => /lib64/libm.so.6 (0x0000003d9d000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003d9c000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003d9bc00000)
lib64を見ているか確認
mod_python
wget http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
tar xzvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python
vi src/connobject.c
-142:!(b == APR_BRIGADE_SENTINEL(b) ||
+142:!(b == APR_BRIGADE_SENTINEL(bb) ||
#フォーラムにありましたが、どうやらバグのようです。
chown apache:apache /usr/local/apache2/modules/mod_python.so
#権限は環境に合わせてください
NATなFusion上のWindowsからホストのPostgreSQLに接続
- 2010/02/24
- murave
- OS X
- PostgreSQL
- VMware Fusion
MacBookにPostgreSQLを『Mac OS X で PostgreSQL を使ってみよう』(http://lets.postgresql.jp/documents/tutorial/macosx/)を参考にしつつ導入したのですがpsqlで日本語が通らず困ってたりする今日この頃です。ヘルプミー。
とりあえず、VMware Fusiion3上のWindows7にもPostgreSQLを入れたのですが、ServerだけMac側を使おうかなと。サーバーUnix系OS、クライアントWindowsな実環境に近くなりますし。
ってなわけで、Fusion上のWin7がどうなっているやら調べます。ipconfigで見てみましょう。ネットワーク アダプタはNATです。
IPv4 アドレス . . . . . . . . . . : 192.168.249.131
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . : 192.168.249.2
ということで、ホストのアドレスは192.168.249.1のようですね。
次、OS X に導入したPostgreSQL8.4がどうなってるのか探ります(ちょい前に導入したもので設定を忘れてまして)。探っていくと、/Library/PostgreSQL/ってなところにインストールされているようです。
設定ファイルを探します。デフォルトだとデータと同じ場所に設定ファイルがありますね。
$ sudo ls -l /Library/PostgreSQL/8.4/data/
total 80
-rw------- 1 postgres daemon 4 1 15 08:41 PG_VERSION
drwx------ 6 postgres daemon 204 1 16 21:07 base
drwx------ 42 postgres daemon 1428 3 18 17:33 global
drwx------ 3 postgres daemon 102 1 15 08:41 pg_clog
-rw------- 1 postgres daemon 3405 1 15 08:41 pg_hba.conf
-rw------- 1 postgres daemon 1631 1 15 08:41 pg_ident.conf
drwxr-xr-x 69 postgres daemon 2346 3 23 00:00 pg_log
drwx------ 4 postgres daemon 136 1 15 08:41 pg_multixact
drwx------ 3 postgres daemon 102 3 23 11:24 pg_stat_tmp
drwx------ 3 postgres daemon 102 1 15 08:41 pg_subtrans
drwx------ 2 postgres daemon 68 1 15 08:41 pg_tblspc
drwx------ 2 postgres daemon 68 1 15 08:41 pg_twophase
drwx------ 4 postgres daemon 136 1 15 08:41 pg_xlog
-rw-r--r-- 1 postgres wheel 16779 1 15 08:42 postgresql.conf
-rw------- 1 postgres daemon 70 3 18 17:33 postmaster.opts
-rw------- 1 postgres daemon 52 3 18 17:33 postmaster.pid
ありました。設定見たり、いじったりしましょう。
まずは postgresql.conf。postgresさんの持ち物らしいので、なりきってGO。
$ sudo -u postgres vim /Library/PostgreSQL/8.4/data/postgresql.conf
で、眺めると、全てのアドレスでlistenはしてるようです。
listen_addresses = '*' # what IP address(es) to listen on;
修正は必要ありませんでした。
次、pg_hba.confを同じくpostgresさんになりきってエディターで開きます。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
当然、192.168.249.131からの接続は許可されてません。今回は192.168.249.*からtrust(認証なし)にすることにします。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Win7 on Fusion3 connections
host all all 192.168.249.0/24 trust
trustな行が追記分です。保存して、PostgreSQLをリスタート。
Fusion 上の Win7 で pgAdmin III を起動して接続してみます。
よしよし。
make不要になっていたRed5
Red5はバージョンは追っていたんですが、0.6以降全く触っていなかったので、とりあえずインストールだけでもやっておくかなと0.9.1をダウンロード。
http://code.google.com/p/red5/
ちょっと調べてみるともうmakeしなくてもそのまま動作するらしいので、antも入れないで良いかと、CentOS5にJAVAだけインストールしてその後、環境変数を設定。
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
red5を解凍して適当に放り込んで起動。
/usr/local/red5/red5.sh &
するとエラー。
Exception in thread “main” java.lang.NoClassDefFoundError: org/red5/server/Bootstrap
調べてみても、それらしいものは見当たりません。
シェルなんだしと、とりあえず中身を見てみるとRED5_HOMEと言ういかにもな環境変数が無い時にpwdで取ろうとしていたので、ああ、なるほど、とカレントに移動してやってみる。
cd /usr/local/red5
./red5.sh
見事に起動。時々やった事はあるけど、pwdで取っても意味が無い奴ですね。一応環境変数に追加しておきます。これでどこからでも起動可能でした。
export RED5_HOME=/usr/local/red5
あ、exportはbashrc等のファイルに書いておかないと次回起動した時に消えるので忘れずに。
OpenGrokをCentOS5にインストール
MOONGIFTさん経由で知ったのですが、OpenGrokはSCM(Subversion、Git、Mercurial等)上のソースコードを関数名、変数名その他で検索できるエンジンで、CDDLでオープンソースとして公開されています。この検索エンジンを使用する状況としては、「この関数ってどんな使い方?」、「某言語の某関数にバグがあるみたいなんだけど、うちのコードで使ってなかった?」といった時が考えられます。便利そうでしたのでCentOS5にインストールしてみました。
OpenGrokの動作に必要なctags、tomcat等をインストール
yum install ctags tomcat5 tomcat5-webapps
chkconfig tomcat5 on
OpenGrok用ディレクトリを作成
mkdir /var/opengrok/
mkdir /var/opengrok/bin
mkdir /var/opengrok/src #ここに解析対象のソースを置くことに
mkdir /var/opengrok/data
mkdir /var/opengrok/etc
OpenGrokをダウンロード・展開
mkdir work
cd work
wget
tar xzvf opengrok-0.9-rc1.tar.gz
mv opengrok-0.9-rc1/* /var/opengrok/
source.warを一度展開し、web.xmlを編集する
mkdir source
cd source
unzip /var/opengrok/lib/source.war
vi WEB-INF/web.xml
#下記を追加
...
DATA_ROOT
/var/opengrok/data
REQUIRED: Full path of the directory where data files generated by OpenGrok are stored
SRC_ROOT
/var/opengrok/src
REQUIRED: Full path to source tree
SCAN_REPOS
false
Set this variable to true if you would like the web application to scan for external repositories (Mercurial)
...
zip -r source.war ./
mv source.war /var/opengrok/lib/
cp /var/opengrok/lib/source.war /var/lib/tomcat5/webapps/
何かソースを取得しておく
cd /var/opengrok/src
svn co file:///home/svn/project #何かチェックアウトしてみる
インデックス作成用スクリプトの編集
vi /var/opengrok/doc/run.sh
#!/bin/sh
#変更
PROGDIR=/var/opengrok
# REQUIRED The root of your source tree
#変更
SRC_ROOT=${PROGDIR}/src
# REQUIRED The directory where the data files like
# Lucene index and hypertext cross-references are stored
#変更
DATA_ROOT=${PROGDIR}/data
# OPTIONAL A tab separated files that contains small
# descriptions for paths in the source tree
PATH_DESC=${PROGDIR}/doc/paths.tsv
# A modern Exubrant Ctags program
# from http://ctags.sf.net
#変更
EXUB_CTAGS=/usr/bin/ctags
# If you need to set properties (Ex. override the mercurial binary)
#PROPERTIES=-Dorg.opensolaris.opengrok.history.Mercurial=/home/trond/bin/hg
# Uncomment the following line if your source contains Mercurial repositories.
# SCAN_FOR_REPOS="-S"
# You might want to add more available memory, and perhaps use a server jvm?
#JAVA_OPTS="-server -Xmx1024m"
LOGGER="-Djava.util.logging.config.file=logging.properties"
#変更
java ${JAVA_OPTS} ${PROPERTIES} ${LOGGER} -jar ${PROGDIR}/lib/opengrok.jar ${SCAN_FOR_REPOS} -c ${EXUB_CTAGS} -W ${PROGDIR}/etc/configuration.xml -P -S -v -s ${SRC_ROOT} -d ${DATA_ROOT}
# OPTIONAL
java ${LOGGER} -classpath ${PROGDIR}/lib/opengrok.jar org.opensolaris.opengrok.web.EftarFile ${PATH_DESC} ${DATA_ROOT}/index/dtags.eftar
chmod +x /var/opengrok/doc/run.sh
インデックス作成スクリプトの実行
/var/opengrok/doc/run.sh #このスクリプトをcron等で定期実行する
Tomcatの起動
/etc/rc.d/init.d/tomcat5 start
http://hostname:8080/source/ にアクセスし確認
FlashDevelop 3.1.0 RTM がリリースされてました
- 2010/02/22
- murave
4/21にリリースされたようです。
FlashDevelop.jp の記事
http://flashdevelop.jp/FlashDevelop3.1.0_RTM
ダウンロードできる場所
http://www.flashdevelop.org/community/viewtopic.php?f=11&t=6415
なんと、日本語での解説!
馬鹿全 – FlashDevelop 3.1.0 RTM リリース
私は今日 flex_sdk_3 から flex_sdk_4 に切り替えていて、たまたまFlashDevelop の本家を見に行ったらリリースされていて大喜び!って感じだったのですが、日本のサイトでこれだけ情報が出ているのはうれしいですね。しかも、FlashDevelop自体が日本語ローカライズされている!
インストールの記事でも書こうかと思ったのですが、前のバージョンでは必要だった文字コードがらみの設定も必要なくなり(デフォルトがUTF8のBOMなしになっているのでそのままで普通に使えます)、特記するようなこともなくなっていましたのでやめときます。FlashDevelop.jp をご参照くださいってことで。
PostgreSQL9.0が正式リリースされたようですね
- 2010/02/21
- aikawa
- PostgreSQL
yum の Proxy 設定でハマった
前回の Mac の Web 共有で Proxy で設定した Macbook 経由で CentOS 5 のサーバーで yum を使おうとして少しハマったのでメモ。
「export で proxy 設定してもダメ!」だったのでした。
http_proxy やら ftp_proxy やら設定しまくって、やっぱりだめで、ところが yum.conf を編集したらあっさり、さっくり、うまくいってしまったのでした。一時的に繋ぎたいだけなので yum.conf を触りたくなかったのですがしょうがないですね。
一般的にそうなのかはわからないのですが、そういうことがあったということで。
ちなみに、apt の場合は export で http_proxy (と必要なら ftp_proxy )環境変数を設定すれば OK。