掲題のシステムを構築する仕事があったので、備忘録がわりに。
動画ファイルの形式について
mp4を使うとPC・スマホとも簡単に配信できる感じ。
細かい制御をしたい場合は、PC向けにはRTMPを使ったflv配信、スマホ向けにはHLSによる配信が良さそう。
flv
Flash Video。iPhoneやAndroidの場合、標準では再生できない場合が多い(アプリを導入すれば再生できる)。
mp4
PCブラウザ・スマホ両方で再生できる(Firefoxはバージョン21.0から対応)。
m3u8
HTTP Live Streaming(HLS)形式。PCブラウザではSafariを除いて基本的に未対応。
ストリーミングサーバーについて
Adobe Flash Media Server (FMS)
flv, HLSなどの配信ができる。115,500円。YouTubeやmixiなどで採用されているらしい。
Red5
https://github.com/Red5
フリーのストリーミングサーバー。Java製。mixiやニコニコ動画などで採用されているらしい。
C++ RTMP Server
Wowza
擬似ストリーミング
http://server-setting.info/centos/apache-pseudo-streaming.html
apache でPseudo streaming(疑似ストリーミング)で動画配信を行ってみる( mod_flvx,mod_h264_streaming モジュールを使ってみた)
http://server-setting.info/centos/nginx-pseudo-streaming.html
nginx でPseudo streaming(疑似ストリーミング)で動画配信を行ってみる(flv、mp4ディレクティブを使ってみた)
シークが少しもたつく場合があるが、非常に簡単に使うことができる。
aptでnginxをインストールして「mp4;」と一行書くだけ。
nginx-rtmp-module
https://github.com/arut/nginx-rtmp-module
nginxのRTMPモジュール。HLSの配信もできる。
おまけ nginx-rtmp-moduleを組み込んだdebパッケージ作成
適当なワークディレクトリ内で行ってください。
ソース展開に必要なパッケージをインストール
apt install dpkg-dev
nginxの最新版ソースを取得する
add-apt-repository -s ppa:nginx/development
apt update
apt-get source nginx
cd nginx-1.7.7/
nginx-rtmp-moduleをクローンする
cd debian/modules/
git clone https://github.com/arut/nginx-rtmp-module.git
cd ../..
ビルドオプションにnginx-rtmp-moduleを追加。
debian/rulesのextras_configure_flagsに以下を追加。その前行に\を入れるのを忘れずに。
--add-module=$(MODULESDIR)/nginx-rtmp-module
ソースパッケージをコンパイルする為に必要なパッケージのインストール
apt-get build-dep nginx-extras
パッケージのビルド
ひとつ上のディレクトリにパッケージ(.deb)が生成される。
dpkg-buildpackage -b
パッケージのインストール
cd ..
dpkg -i nginx-common_1.7.7-1+trusty0_all.deb nginx-extras_1.7.7-1+trusty0_amd64.deb
モジュールの確認
nginx -V