C++ RTMP ServerとJW Playerの組み合わせだと問題ないけど、Androidの動画プレーヤーからだとサブディレクトリに置いたファイルが再生できない状況。
試したのは以下あたり。
mediaFolder直下に置けば再生できるんだけど、単一ディレクトリで管理とかしたくないし。
というわけで、他のサーバーも試してみる。
Darwin Streaming Server
インストール
# pkg_add http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/DarwinStreamingServer-6.0.3.tbz
Fetching http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/DarwinStreamingServer-6.0.3.tbz... Done.
Fetching http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/p5-Net-SSLeay-1.54.tbz... Done.
Added group "qtss".
Added user "qtss".
ユーザー作成とサーバー起動
SETUP NOTICEに従って実行。
# qtpasswd -c foo
Creating password file for realm Streaming Server.
Adding userName foo
New password:
Re-type new password:
# echo admin: foo > /usr/local/etc/streaming/qtgroups
# echo 'streamingadminserver_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/streamingadminserver start
Starting streamingadminserver.
再生テスト
/usr/local/share/DarwinStreamingServer/movies にmp4ファイルをコピーして、rtsp://server:554/foo.mp4 にAndroid端末からアクセス。
再生されず。
まぁ、TMPGEncで作成したmp4で、ヒントトラック付いてないので。
ヒントトラック付与
MP4Boxをインストールしてヒントトラックを付与。
# pkg_add http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/gpac-mp4box-0.4.5_1.tbz
Fetching http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/gpac-mp4box-0.4.5_1.tbz... Done.
Fetching http://ftp.riken.jp/FreeBSD/ports/i386/packages-8.4-release/All/gpac-libgpac-0.4.5_6,1.tbz... Done.
# /usr/local/bin/mp4box -hint foo.mp4
Hinting file with Path-MTU 1450 Bytes
Hinting track ID 1 - Type "avc1:avc1" (H264) - BW 4002 kbps
Hinting track ID 2 - Type "mp4a:mp4a" (mpeg4-generic) - BW 158 kbps
Saving foo.mp4: 0.500 secs Interleaving
これで再生されるように。
雑感
- とりあえずサブディレクトリに置いたファイルも再生可能。
- ただビットレートが高くなるとまともに再生できない。ブロックノイズまみれ。
- 端末のスペックの問題でもあるけど、C++ RTMP ServerによるRTMPストリーミングと比較すると難がある。
- MX動画プレーヤーは「S/Wデコーダー(ネットワーク)」にチェックをいれておかないと、再生が開始されずにだんまりの状態だった。