HLS

なんとほぼ1年ぶり。。
家族にテレビを占領されたので、なんとかタブレットMUSIC STATIONが見れんかなぁと、急遽HLS環境をでっちあげたら、意外にうまくいったのでメモ。先人とぐぐる先生に感謝。
環境はこんなの。OS更新せないかんなぁと思いつつ面倒で。。

$ sysctl hw.model
hw.model: Intel(R) Atom(TM) CPU D525   @ 1.80GHz
$ uname -v
FreeBSD 9.1-STABLE #0 r+d844ab2: Mon May 27 18:32:25 JST 2013 (snip)
$ pkg info | grep ffmpeg
ffmpeg-2.8.7_2,1               Realtime audio/video encoder/converter and streaming server
$ sysctl dev.ptx.0.%desc
dev.ptx.0.%desc: EARTHSOFT PT2

で、apache24のmod_userdirを有効にしといて、

$ cd ~/public_html/hls
$ sh hls.sh

としといて、Android(FireHDX8.9)のMXPlayerで、http://HOST/~user/playlist.m3u8で見れたー。
肝心のhls.shはこんなの。2時間(7200秒)で止まるけど。

perl recptx.pl --b25 24 7200 - \
ffmpeg -i - \
-analyzeduration 180M -probesize 100M \ -c:v copy \ -c:a aac -strict -2 -ac 6 -ar 32000 -ab 48k \ -bufsize 1200k \ -f hls \ -hls_time 10 \ -hls_list_size 30 \ -hls_allow_cache 0 \ -hls_flags delete_segments \ playlist.m3u8

最初は、サイズが小さいほうがいいかなぁと、

 -c:v libx264 -b:v 1200k -s 640x360

なんてしてみたら、14fpsくらいでとうてい追いつかず。上みたいに単にcopyしてもMXPlayerは再生してくれて、リアルタイムで問題なく見れました。
audioもcopyしたかったのだけど、エラーでffmpegが止まっちゃうので断念。