実は、ワンセグ野郎Linuxは2ヶ月くらいでガーッと 開発してしまって、その後放置してた。震災もあったしね。
かなり思い出しながら書かなければならないのだが、 モチベーションが続かない(^^; なので「できたこと」を先に説明して、そこそこ 反響があれば連載を続ける所存。
まずはチュートリアルビデオを2件どうぞ。
当たり前に動いてるように見えるだろうけど.... ここまでやるのは大変だったという ある意味自慢話をしよう と思うので、 読みたくない人は以降省略。
足回りのポイントは以下のとおり。
他のワンセグ野郎プロジェクトではSQLite3を使っている。 これはファイルベースのDBであるがゆえに、 ガガッと登録/検索が集中するとよくロックしていた。 まあ元々アプリケーションとかに組み込むためのDBだから しょうがない。
一方、TTは並列数(=スレッド数)を自由に変えられるので、 大規模サイトにも適用可能です(何)。 まあ、TT/TCを全面採用したことによってWindowsでは動かなく なってしまったんだけどね.....MySQLの方がよかったかな。
あとdumpeitを使って、地道にTSのSDTやPMTを解析して TTに蓄積することで、物理チャンネルと放送局の紐づけを いちいちメンテする必要がなくなった。途中でサービスIDとかが 変わっても大丈夫だし、 後述する東京MXマルチ編成にも対応できたし、 他の局でもマルチ編成が始まったら自動的に対応できる。 さらに まったく同じ仕組みでフルセグにも対応できる ...はず(笑)
ストリーミングサーバの改良ポイントは以下の通り。
従来はFlashPlayerのファイル変数で欲しいストリームの情報を 渡していた。いわゆるワンセグ野郎日付YYMMDD-hhmmss-hhmmss-phych.flv、みたいな。この方法だと東京MXのワンセグ1とワンセグ2を指定することはできない。だって物理チャンネルは同じだもんね。
そこで、ストリーミングサーバperlrtmpを改良して、 DBアクセス部分を実装し、CGIを介して どの番組のどのPIDのエレメンタリーを送信すれば 良いか渡せるようにした、ということです。 これで記録するTSは1本だが、分離して別々の番組を 送信できるというわけ。
TVRollというのは、ワンセグ野郎プロジェクトでいうところの実況勢いブラウザ+MP4ファイル2ちゃんねる字幕に相当するもの。Twitterや2ちゃんねるのコメントとテレビ番組を同期して再生できる。で、対応レコーダーは、ARecX6という ネットではいたって評判のよくないレコーダー です。ええ、ワンセグ野郎共はご存知の通りです。
しかしサイト自体は別にARecX6に限ったものではなく、外部APIが公開されていて、どんなレコーダーでも連携できるようになっているようだ(以前は説明ページからリンクが貼ってあったのだが今は切れている)
仕様を軽く読んで...CGIを何個か実装してFlashプラグインを 用意すれば、 番組表やら検索やら自前で用意しなくてもいいいらしい ということがわかって、速攻実装開始。まあJSONの形式が独特(全部文字列)で面食らったけど、ほどなく動いた。
基本は3つ用意すればいい。
だから別にTTとか使わなくても従来のWindows版ワンセグ野郎でもPHPで2つCGIを書けば実装できるはず。
しかし...セキュリティ大丈夫なのかこの構造は。特にフラッシュを手元のマシンから読むとクロスドメイン制約にひっかからないのかね。
TVRollはチュートリアルビデオみればわかるけど高機能で便利。 デザインが前時代的というか古くさくてごちゃごちゃして、そこで損してる感がすごいけど。