«前の日記(2011-08-09) 最新 次の日記(2011-08-13)» 編集

ぱぱネット(仮)


2011-08-12 TV番組全てを合法ニコ動化するワンセグ野郎Linuxその3 [長年日記]

_ [ワンセグ野郎][Linux] モチベーションが続かない

実は、ワンセグ野郎Linuxは2ヶ月くらいでガーッと 開発してしまって、その後放置してた。震災もあったしね。

かなり思い出しながら書かなければならないのだが、 モチベーションが続かない(^^; なので「できたこと」を先に説明して、そこそこ 反響があれば連載を続ける所存。

_ [ワンセグ野郎][Linux] チュートリアル

まずはチュートリアルビデオを2件どうぞ。

当たり前に動いてるように見えるだろうけど.... ここまでやるのは大変だったという ある意味自慢話をしよう と思うので、 読みたくない人は以降省略。

_ [ワンセグ野郎][Linux] 【1】EPGデータベースの改良

足回りのポイントは以下のとおり。

  • TokyoTyrant/TokyoCabinetの全面採用による高速化
  • サービス情報を個別に蓄積(dc_channelテーブルの廃止)
  • TTの全文検索クエリーに対応してより柔軟な検索の提供
  • エレメンタリーのPIDを番組ごとにDB化

他のワンセグ野郎プロジェクトではSQLite3を使っている。 これはファイルベースのDBであるがゆえに、 ガガッと登録/検索が集中するとよくロックしていた。 まあ元々アプリケーションとかに組み込むためのDBだから しょうがない。

一方、TTは並列数(=スレッド数)を自由に変えられるので、 大規模サイトにも適用可能です(何)。 まあ、TT/TCを全面採用したことによってWindowsでは動かなく なってしまったんだけどね.....MySQLの方がよかったかな。

あとdumpeitを使って、地道にTSのSDTやPMTを解析して TTに蓄積することで、物理チャンネルと放送局の紐づけを いちいちメンテする必要がなくなった。途中でサービスIDとかが 変わっても大丈夫だし、 後述する東京MXマルチ編成にも対応できたし、 他の局でもマルチ編成が始まったら自動的に対応できる。 さらに まったく同じ仕組みでフルセグにも対応できる ...はず(笑)

_ [ワンセグ野郎][Linux] 【2】perlrtmpの改良

ストリーミングサーバの改良ポイントは以下の通り。

  • TCセッションDBを用いたセッション管理
  • マルチ編成TSのPID指定を用いた特定番組のみのストリーミング

従来はFlashPlayerのファイル変数で欲しいストリームの情報を 渡していた。いわゆるワンセグ野郎日付YYMMDD-hhmmss-hhmmss-phych.flv、みたいな。この方法だと東京MXのワンセグ1とワンセグ2を指定することはできない。だって物理チャンネルは同じだもんね。

そこで、ストリーミングサーバperlrtmpを改良して、 DBアクセス部分を実装し、CGIを介して どの番組のどのPIDのエレメンタリーを送信すれば 良いか渡せるようにした、ということです。 これで記録するTSは1本だが、分離して別々の番組を 送信できるというわけ。

_ [ワンセグ野郎][Linux] 【3】GUIからの分離

TVRollというのは、ワンセグ野郎プロジェクトでいうところの実況勢いブラウザ+MP4ファイル2ちゃんねる字幕に相当するもの。Twitterや2ちゃんねるのコメントとテレビ番組を同期して再生できる。で、対応レコーダーは、ARecX6という ネットではいたって評判のよくないレコーダー です。ええ、ワンセグ野郎共はご存知の通りです。

しかしサイト自体は別にARecX6に限ったものではなく、外部APIが公開されていて、どんなレコーダーでも連携できるようになっているようだ(以前は説明ページからリンクが貼ってあったのだが今は切れている)

外部API

仕様を軽く読んで...CGIを何個か実装してFlashプラグインを 用意すれば、 番組表やら検索やら自前で用意しなくてもいいいらしい ということがわかって、速攻実装開始。まあJSONの形式が独特(全部文字列)で面食らったけど、ほどなく動いた。

基本は3つ用意すればいい。

  • EPGの内容を返す(検索する)CGI
  • 特定の番組をこれから再生するぞと選択するCGI
  • ストリーミングプラグイン

だから別にTTとか使わなくても従来のWindows版ワンセグ野郎でもPHPで2つCGIを書けば実装できるはず。

しかし...セキュリティ大丈夫なのかこの構造は。特にフラッシュを手元のマシンから読むとクロスドメイン制約にひっかからないのかね。

TVRollはチュートリアルビデオみればわかるけど高機能で便利。 デザインが前時代的というか古くさくてごちゃごちゃして、そこで損してる感がすごいけど。

_ [雑記] 疲れた

実績を説明するだけでつかれた。続ける気力がないw


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2011年
8月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(11778+2560143)