お名前検討中(仮)
さんざん手を付け散らかして(主にPHPの方)、わけわかんなくなってきたfoltiaを、perl部分含めてCakePHPで車輪再発明中なのです。お名前検討中。
機能縮小しとるし、安定動作確認まではしばらく並行稼働やねー。
- しょぼかる連動録画のみ。EPGは使ってないし、面倒なので後で考える。
- UIはCakePHPのscaffoldまんま。後でいじる。
- SQLiteのみ。dbまわりはCakePHPがPDO経由で叩いてるので、別DBに差し替えるのはそんなに手間じゃないはず。日付判定でSQLiteの独自関数使ってるけど。
- アナログ録画とかラジオ録音処理はばっさりカット。recpt1呼び出しのみ。
- サムネイル作成、StarLightBreaker、トラコンもカット。録画終了hookを作ったのでそこにスクリプト書けばいける。
現行環境に残ってる最古の積み録画は、2009/10/06の「そらのおとしもの #1 ユウシャ世界に起つ!」だった。いろんなのを録っては消し、録っては消しだけど、いったん積むとなかなかまとめて見る機会が無くてにゃー。それにしてもfoltiaには5年以上お世話になってるのね。ありがたや。
OpenWRT for Nexx WT1520
目標は、WT1520に挿したUSBメモリに入ってる地デジTSを、Androidで快適に観ること。多少面倒で良ければ、そのままでもOKだけど、
- SMBだと激遅
- FTPだとFFW/RWDが今いち、また(プレイヤーのせいかもしれんが)途中で固まる
- DLNAは動いてない(backdoorのtelnetでログインしてみたら、upnpdは動いてるがこれはたぶんポート解放絡み、minidlna.confはあるけどminidlnaバイナリが無い)
というわけで、いつものオレオレDLNAサーバを組み込んだfirmwareを作ってみたい。ひとまずは普通のHTTPサーバが動けばいいかな。
環境構築
VirtualBox上に、lubuntu-14.04.1_x86をインストール。特に工夫もなし。
Synapticで、make、git、subversion、openssh-serverを追加。
一度リブートして、puttyからsshして続き。
レポジトリ展開
勝手が判らんので、素直にWiKiの通り
http://wiki.openwrt.org/doc/howto/buildroot.exigence
$ sudo apt-get install git-core build-essential $ git clone git://git.openwrt.org/openwrt.git $ cd openwrt $ ./scripts/feeds update -a $ ./scripts/feeds install -a
WT1520向けのパッチをあてる。ただしpastebinにあるパッチは、何故か向きが逆。
パッチを眺めながら手で編集した。
https://forum.openwrt.org/viewtopic.php?pid=246678#p246678
オリジナルの方も参考に。
https://github.com/hackruu/nexx-wt1520-openwrt
ビルド準備の準備
さて
$ make defconfig Checking 'working-make'... ok. Checking 'case-sensitive-fs'... ok. Checking 'getopt'... ok. Checking 'fileutils'... ok. Checking 'working-gcc'... ok. Checking 'working-g++'... ok. Checking 'ncurses'... failed. Checking 'zlib'... failed. Checking 'gawk'... failed. Checking 'unzip'... ok. Checking 'bzip2'... ok. Checking 'perl'... ok. Checking '/usr/bin/python2.7'... ok. Checking 'wget'... ok. Checking 'git'... ok. Checking 'gnutar'... ok. Checking 'svn'... ok. Checking 'openssl'... ok. Checking 'gnu-find'... ok. Checking 'getopt-extended'... ok. Checking 'file'... ok. Checking 'non-root'... ok. Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h) Build dependency: Please install zlib. (Missing libz.so or zlib.h) Build dependency: Please install GNU awk. Prerequisite check failed. Use FORCE=1 to override. make: *** [tmp/.prereq-build] エラー 1
無いものは、Synapticから適当に検索して、libncurses5-dev、zlib1g-dev、gawkを追加。
もう一度 defconfigして。。OK
$ make prereq $ make menuconfig
う。Target Profileに、NEXX WT-1520が出てこない。。。Wikiの下の方に、
After add a new board, you may should clean the tmp folder first.
とあるので、tmpを消してmake menuconfigすると選択肢に出てきた。
http://wiki.openwrt.org/doc/devel/add.new.device
ビルド準備
Target System: Ralink RT288x/RT3xxx
Subtarget: RT3x5x/RT5350 base board
Target Profile: NEXX WT-1520
パッケージは下記を参考に適当に。
https://github.com/hackruu/nexx-wt1520-openwrt/blob/master/build.sh
ビルド
$ make kernel-menuconfig
良く分からんので、そのまま終了して保存。
https://github.com/hackruu/nexx-wt1520-openwrt
のFILES_1520の下を、openwrt/filesとしてコピー。
$ make defconfig $ make V=99
EXT-X-BYTERANGE 続き
HDX8.9のSilkとNexus7のブラウザで実験。PT2で録画した地デジ.TSをそのまま使った。
HDX8.9
byte-rangeでGETしに来てるようだけど、途中で止まる。
そこまで音は出るけど、画が出ない。やっぱりMPEG4にしないとダメ?
Nexus7
音も画も出ない。。。
結論:いまいち
手元に、MPEG4をTSにつっこんだファイルがあれば、10秒ごとにファイルを個別に
切り刻まなくてもいける、ってことですかね。
EXT-X-BYTERANGE
え。いつの間にこんなの出来るようになってたの?
http live streaming - How to create byte-range m3u8 playlist for HLS? - Stack Overflow
かつて、無理矢理これをやるために
#EXTM3U #EXTINF:10.0, segment.php/TV.ts/0/75232/.ts #EXTINF:10.0, segment.php/TV.ts/75233/150466/.ts #EXTINF:10.0, segment.php/TV.ts/150467/225699/.ts
みたいな、部分を返すPHPをかました形でplaylistを出してみたりしてたのだけど、そんなのなくても、
この形式で出力してやればクライアントが勝手にbyte-rangeでGETしてくれるってことだよね、たぶん。
試してみるか。