録画サーバー作った話

f:id:alea12:20140823023856j:plain

構成

M/B AM1H-ITX AC アダプタで動くのは最高だと思う。
CPU Athlon 5350 ファンの取付難しかった。
Memory 1GB x 2 部屋に転がってた適当なやつ。
SSD 128GB 部屋に転がってた適当なやつ。
Tuner PT3 Rev.A Low Profile にするととても小さい。
IC Card Reader HWP119316 光らないでほしい。
Case なし 適当なラックに置いてある。

システム

OS は Ubuntu 14.04 LTS 入れた。

$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
$ php -v
PHP 5.5.9-1ubuntu4.3 (cli) (built: Jul  7 2014 16:36:58) 
$ ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux]
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4859
Server version: 5.5.37-0ubuntu0.14.04.1 (Ubuntu)
$ uptime
02:23:43 up 24 days, 22:31,  1 user,  load average: 0.11, 0.11, 0.08

最後のは 24 日連続稼働してますよというやつ。安定してる。

機能

f:id:alea12:20140823024421p:plain

  • ブラウザ越しに番組表を表示する。
  • 番組表から選んだ番組を録画する。
    • 特定のキーワードに引っかかった番組は全部録画、という機能もある。
    • たとえば「能年玲奈」を全部録画したり出来る。
    • このへんは自分で作ったわけではなくて epgrec により実現した。
  • 録画した TS ファイルは自動的に H.264 な MP4 に圧縮する。
    • この時、相当小さくしてる。具体的には 480x270
    • 画質を犠牲にして低容量を実現したいという考え。
    • do-record.sh 晒したいけど汚いのでやめる。
  • 録画したファイルもブラウザ越しに見れる。
  • 月に 400 件とか録画してるので、適当な検索機能を JavaScript で動かしてる。

感想

PT3 の導入初めてだったので苦労するかとおもったら、下調べしてたお陰か全く問題は発生しなかった。余裕。さすがに録画+エンコードは Athlon 5350 には荷が重いのではと思ったけど十分こなしている。 5 分の番組を 2 分くらいでエンコードし終えてくれるので、毎日 0:02 くらいには前日の 2355 を楽しむことが可能。

f:id:alea12:20140823024150j:plain

自室に置いてるけど十分静か。適当なラックに置いてあるので、酔った勢いで蹴飛ばしたりしないように気をつけたい。一ヶ月録画してみて、 463 件録画してた。容量は 58G くらい食っていて、現状 128GB の SSD しかつけて無いので早晩限界がくる。だれか 2TB の HDD 買って欲しい。