mod_HLS
ベースのapache moduleは出来たので、地デジのロケフリなんぞもやってみようと(/dev/ptx0.t0を右から左へ流せばいいはず)思ってますが、先にやってみたのが2年越しの課題になってる、HTTP Live Streamingなのでした。
xxx.m2tがある時にxxx.m2t.m3u8をリクエストされたら、ファイルサイズとbitrateを基に10秒ごとに1本にしたプレイリストを返して、そのエントリをリクエストされたら、10秒分をRangeリクエストされたものとして返す。面倒なのでTranscodeなんぞやりません、というのを試しに作ってみた。
これを、PCのChrome、MBAのSafari、iPhoneのSafari、iPadのSafariで観てみた。なんとか絵は出た、というのが、MBAのSafariだけだった。。。
調べてみると、ChromeってHLSに対応してないのね。Androidのブラウザは対応してるのに、何でそんなことになってるのか判らんが。
iPhone、iPadは、プレイリストを取りに来て、エントリを数個取っていくところまでで、画面は白いままだ。MPEG2-TSに対応してないのかもしれん。もしくは10秒といっても数10MBなので、そんなものを処理しきらんのかも。
MBAも、がんばってはいたが結構がくがくする。うーん。
以前に挫折した、ワンセグ切り出してHLS、とマージしてみる予定。結局188byteずつ読んでは、TSパケットの種類を判別してフィルタするわけなので、負荷が気になるけども。