
ゆるゆり2期が決定しましたね。7月からだそうです。結京を高画質でずっと見たいと思うので、おそらくそれだけのためにテレビチューナを購入しました。
もちろんWindowsで動かす気はないので、(手を加えると)Linuxで動くものを選択しました。KTV-FSUSB2Nです。安価で入手性高し、(今のところ)改造が容易なのが理由です。
改造方法については巷にありますので割愛します。ロットはK1111系でした。なんと最近は泡なしみたいですww 対策諦めたんだろうかw
最初はメイン鯖の仮想Debianを使用しようと思っていましたが、USBパススルー機能は対応しているOSが限られるので、仮想XPを使用。しかしUSB1.1相当の速度しか出ず断念。
PC-2を部室から持って帰って使用しようとしたものの、ブートローダが死んでる+BIOSパスワードを忘れて入れない
どうしようもなくなり、アキバでジャンクデスクトップを購入。HP D530SFF(CPU:NorthwoodPen43.0GHz(HT),RAM:512MB(表記では512GBwww、HDD:40GB、2000円)。同じ店で「DDRメモリ(256MB)3枚100円!!」っていうのをやっていたのでELPIDAを必死に探して(すごい異様だったと思うw)購入。

が、帰ってきて開けようとしたらなんと後ろが弄りどめ付きトルクスで物理セキュリティロックがかかってるw トルクスレンチ(1k)を買うかネジザウルス(1.7k)を買うか迷いましたが、いろいろ使えるネジザウルスにしました。うーん、2kのものを開けるために1.7kってのはアレだけど….w
ネジザウルスで開けるといとも簡単に開きましたw 普通のペンチじゃ開かなかったのになんでだww
……..BIOSのメニューからその電子錠を開けれたのは起動成功してから気づきました。うわ….
なかは結構埃がありましたが、格闘の末退治に成功。HPらしく(サーバっぽく)ユニット式になっており、すごく開けるのは楽でした。なんせツールレスで全部にアクセスできるんですもん……
ELPIDAの3枚100円メモリはmemtest86+一周しましたが、とくに問題はありませんでした。よかった。これで1GBメモリー。
どうやらファンが一つ逝かれているようでカラカラ音がします。うるさい…. そのうちファン買いたいです。とりあえずOSはDebian(squeeze)入れました。
Windowsで動作確認の後、
KEIAN [KTV-FSPCIE] + recfsusb2n for linuxで地デジ
このページを参考にいろいろ入れます。
recfsusb2nという、Windows向けドライバ作者の方が作成してくださったLinux2.6向けのドライバ(っていえばいいんだろうか)を使用するのですが、tssplitter_liteを同梱させるパッチがあるのでそれを適用させていただいてから使用します。
recfsusb2nにtssplitter_liteを内蔵
TSファイルとは、地上波のストリームをそのまま保存した、カメラでいうRAWファイルの状態です。たぶん。そのため、ワンセグデータ、番組表、字幕などの無駄なデータが同梱されてしまうため容量が必要以上に大きくなってしまいます。それを分離するtssplitter_liteというツールがあるのですが、それが同梱されます。また、初期状態では起動直後の不安定なストリームも保存してしまうので、再生に失敗してしまうことがあります。それを取らないようにする機能も付加されます。いや、感謝感謝。俺もこういうものも作りたいですね。
録画するときは
$ recfsusb2n -bv --sid hd,sd1,sd2 --trim 1000 27 30 test.ts
のようにします。
/usr/bin/に放りこめばパスが通るものだと思い込んでた…./usr/local/binなのか….
動作確認の後、番組表Web表示用のソフトをセットアップします。
KTV-FSPCIE + EPGrecで予約録画1/2【LAMP環境の構築,他、前準備】
KTV-FSPCIE + EPGrecで予約録画2/2【インストールと設定】
先ほどと同じサイトを参考にさせていただきます。
詳細は説明がめんどくさいので省きます。いや、大変でした、正直。意味不明なエラーが多発して大変でした。
「なんかエラーが出たときには、とりあえずパッケージ不足を疑え」
これ鉄則です。少なくとも今回は。
さて、結局どういうふうな構造になったかというと

….GNUPaintさん……軽快お絵かきソフトとはいえアンドゥ機能くらいつけてください……あと多バイト文字の挿入させてください…….. 別に好きで英語で書いてるわけじゃないです。
recmvってのは、録画ディレクトリにTSファイルが入ってたら自動的にSCPで転送するっていうお手製のスクリプトです。FTP鯖をPC-4に建てようかと思ってたんですが、なぜかどうにもうまくいかないので速度は妥協しました。めんどい。
流石にパスワードベタ書きなんてアホなことはしたくないので、公開鍵認証(ただしパスワードなし)にしました。
recmv.py(追記のところに改良版があります)
これをcronで動かせば、WebUIから録画したファイルが自動的にメインサーバに転送(元ファイルは削除)されます。
TSファイルはとんでもなく大きいので、PC-4のffmpegでH.264にエンコードしようと思ってましたが、multimediaからnon-freeのソース落としてコンパイルして動かしてみましたが、音が出なかったり早回しになったりどうにもうまくいきません。とりあえずめんどくさいのでこのままです。てへぺろ
まぁ最初にHDだけ抽出しているので、そのままのTSファイルよりも小さくはなってます。
手抜き。おわり
#ゆるゆり三期来いっ!!w
追記: HDだけだと、本体がSDの場合にCMとかだけ録画されてしまうw hd,sd1,sd2,sd3とかでやってみました。たぶんこれで大丈夫だとは思うけど… HDが切れてもSDだけでもちゃんと録画してくれるんかな。あとでやってみます。ちなみにhd,sd1,sd2,sd3で録画したら10秒で約20MB,おそらく30分で2.3GBでした。
追記2: どうやら録画中のテンポラリファイルも録画ファイルディレクトリに置かれてしまうみたいなので、最初に秒数をスクリプト1に渡しておいて、cronでスクリプト2で監視、指定された秒数(から求められた時刻)が経過したらスクリプト2を走らせて転送するというものを書いてみました。思ったよりも難しく、設計がごちゃごちゃになってしまいました。最初はjsonを使おうと思ってましたが、オブジェクトはjsonで渡せないので(時、分とかに変数を分ければ可能ですが)、pickleというオブジェクトをファイルオブジェクト化するモジュールを使用しました。いや、問題が色々と発生して完成するまでに結構時間がかかりました。2.5時間くらい。。
recmv.py (転送するスクリプト)
makerecmv_list.py (秒数を受け取ってファイルにかきだすスクリプト)
修正BSDライセンスです。