‘Java’ カテゴリーのアーカイブ

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 にアクセスするとライブストリーミングが開始されます。

Popularity: 70% [?]

JRuby兄弟、爆誕!

7月27日に行われた「福岡Rubyビジネス拠点推進会議 平成22年度総会」に行ってきました。私の場合正しくは、合わせて行われたRBC(Ruby Business Commons)の総会に行って来た、というべきかな(弊社は長崎ですからね)。

RBCブースのお手伝いが主目的だったのですが、講演もほとんど聞くことができました(まつもとさんのプレゼンは一部しか聞けなくて残念)。

私的に一番インパクトがデカかったのはJRuby兄弟(JRuby開発者、ThomasとCharlesの二人。翻訳して徹夜で字幕をつけてくれた片山さんによると「自称」らしい(笑))からのビデオメッセージ!

http://rubybizcommons.jp/ja/articles/2010/07/28/2010727-rubydays-2010/

RBCオフィシャルサイトの上記ページでまつもとさんのプレゼンテーション資料とともに公開されていますので、ぜひぜひ見てください。この二人が出てくるだけでなんだかなごんじゃうんですが、内容はエキサイティングですよ!

「cExtension APIを JRubyで利用出来るように挑戦しています」

とかね! JRubyやっぱ、好きや〜!

Popularity: 6% [?]

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#下記を追加
<web-app>
  ...
  <context-param>
    <param-name>DATA_ROOT</param-name>
    <param-value>/var/opengrok/data</param-value>
    <description>REQUIRED: Full path of the directory where data files generated by OpenGrok are stored</description>
  </context-param>
 
  <context-param>
    <param-name>SRC_ROOT</param-name>
    <param-value>/var/opengrok/src</param-value>
    <description>REQUIRED: Full path to source tree</description>
  </context-param>
 
  <context-param>
    <param-name>SCAN_REPOS</param-name>
    <param-value>false</param-value>
    <description>Set this variable to true if you would like the web application to scan for external repositories (Mercurial)</description>
   </context-param>
   ...
</web-app>
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/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/ にアクセスし確認

Popularity: 37% [?]