HT03A用児童テレビ録画

Atomマザーちーこいなー

ごきげんよう
長い話になりまふ。(それはコツコツとblogを更新しないからサ)
HT-03A用というわけではないのだけど、MonsterTV HDU2 + TvRock +ffmpeg で児童録画環境を以前構築しまひた。WindowsTvRockがTS録画して、ML115上のUbuntuPerlスクリプトが10分置きに新しいTSファイルが出来ていないかを見に行って、出来てたらwine + TsSpliter でワンセグ抜いて、ffmpeg + Lame + MP4Box なんてことしてまひた。普通にテレビ出力して視聴用と、モバイル用で圧縮率を変えたり。その環境で特に不満は無かったのでふが、音ズレが激しい。でも95%以上の動画は nvplayer で1.6〜2.0倍速再生して消化するので、あんまし音ズレは気になりませんでひた。
ふと、通販で衝動買いしたCore2Duo T5500の中古ノーパソ(実はうちの環境で最速マシン)をそのまま放置していたので、ためしに Windows上で TsSpliter + BonTsDemux で変換してみたら、Video Frame補完が効いているのか音ズレが気にならない動画が作成できるのと、当然うちで最速マシンなので変換が速い速い。といっても所詮はT5500なんデスけどネ!

1.録画用PC

CF-W2というPentiumMobile 1.10GHzのパナソニックノーパン。これにHDU2をついけて録画してまふ。ぺんもばなのに、TvRock + TVTest はCPU50%くらいでちゃんと録画できまふ。しかもこのノーパンは100Baseなのに、NAS上にTSをちゃんと直接はきだしてくれまふ。そもそもリアルタイム録画で100Baseもいらないようだが。
録画後に

  • TS録画終了フォルダに移動
  • Wake Up On Lan で変換用PCを起こす

ということをさせマフ。
それ以外には何もインストールしてないキレイな子。

2.変換用PC

中古ノーパソのOSをキレイにしなおすコトから始める。CDROMが5枚もついていて、それを何度も何度も何度も何度も入れ替えしないと、フルリカバリが出来ない仕様。これが正しい仕様のようだ。中古だからではなさそう。なのであきらめて3時間ぐらいかけてフルリカバリ。この時点ですでにもう飽きてきている。が、Paragon Backup & Recovery: IT備忘録さんのtwitterつぶやきをみて、ぱらごんの存在を知り早速導入。ためしにリストアもしてみたがちゃんとできた。CDROMもしくはUSB起動で、NAS上のイメージも見れる。すばらしい!subaらしい!これさえあれば・・・ふっふっふっふ。もう何度もCDROMを入れ替えなくても良くなった。いえい。
で、こやつにActivePerl(うわ)を入れて、Taskマネージャーで10分起きに

  • NAS上にTSファイルがいるかいないかみる
  • いなければ即シャットダウンしちゃう
  • TSファイルがいたら、PerlからTsSpliterを呼んでTS抜き
  • PerlからBonTsDemux を呼んで、そのファイル名を見て、通常変換(圧縮率中)かモバイル用(圧縮率高)で変換する
  • 変換が終わったら即シャットダウン

というタスクが延々と動いています。変換しない時は電源が落ちているエコ環境。でもWakeUpOnLan待ちうけでかすかに電力は食っているんだろうけどね。

3.NASを・・・

1と2だけで環境は完成しているのだけど、以前は2の役割をしていたML115上のUbuntuが不要になって、たんなるSambaサーバーになってしまうのが、気持ち的にいやん。なので、FreeNASでも入れようかと思ったのだけど、そうするとML115がもったいないような気がする。といっても一番安いAthlon3500なんですけどね。。。そこで、何を思ったのかESXi上にFreeNASとUbuntu(Desktop)を入れようと突発的に思いつき、痛い目にあう・・・。
そもそもESXiを勘違いしていたせいもあるのだけれども、ESXi上にFreeNASは当然簡単にインストールできる。が、NAS領域をML115上に作りたいので、ESXi上に作らないといけないわけで。ML115には200GB + 1.5TBの2台のHDDをつけていまふ。なので当然1.5TBをNAS領域にするわけでふが、あれ・・・。そもそもEXT3で1.5TBをフォーマットできないわけですよ。そこで悩む。やりたいことは

  • 200GBのHDDにFreeNASとUbuntu(Desk)を入れる
  • 1.5TBはFreeNASのNAS領域として使いたい

まずそもそもこの時点でおかしいことにまったく気がつかないボク。いや、環境は出来るんですよ。でもやっぱおかしいわけデ。
まずそもそもESXiはEXT3でもNTFSでもなんでもいいけど、それが読めない(というか読ませ方がわからなかった)。NFSは読める。そうすると、

  • 200GBのHDDにUbuntu(Desk)を入れる
  • 1.5TBはUbuntu(Desk)の領域として、VMイメージにしてから、UbuntuNFSにしておく
  • 200GBのHDDにFreeNASを入れつつ、NFSも割り当てる

あれー。あれー。なんかループにはまってないかーと。何がキモチ悪いかというと、1.5TBの領域をVMイメージにしないといけないコト。HDD取り出す時にかならずVMなんとかを間にはさまないと保存したものが読めなくなるじゃないですかい。ここで考えることに飽きる。もうどうでもいいやと、結局のところまずは

  • 200GBのHDDにFreeNASを入れるが、その際に1.5TBのHDDもデータストアとしちゃってまるごとVMイメージにしてしまう。

ということにしてみた。疲れたので。
とにかく、まずはTS動画をはきだすテンポラリ領域と、圧縮後のファイルを保存する場所さへ確保できればいいわけですから。用は成す。が、なんか重い。ffmpegの変換速度をみると300kbits/sしかでない。さらにFreeNASのCPU使用率も高い。10GBくらいのファイルをコピーしたりすると止まる。
やっぱだめな環境なんだね。同じPCの中でESXiの上にFreeNASとその共有領域を作成するのはだめなんだと。身をもって知る。

4.なぜかAtomを・・・

録画用は常時起動のノーパソで一応エコ。変換用は変換時のみしか起動しないノーパソでさらにエコ。ML115はエコじゃない!ので、これまた突発で
D510MO
MX1201-BK(Mini-ITXケース/200W電源付き)
2GBメモリ ×2枚
をぽちる。FreeNAS入れたい入れたい入れたいと思いつつも、PlaggerとかCactiとか動かす場所が無くなるので、結局UbuntuServer入れて、Sambaで共有とする。あれ、なんか一番最初の環境と変わらないような・・・。と、ひととおり終わってから気がつく。ま、いいか・・・。しかしAtomマザーちーこいなー。FxCameraで捕ってみたテスト。
http://www.misao.gr.jp/~subaru/PhotoStrage/100221_1.jpg
そしてこんな感じになる。
http://www.misao.gr.jp/~subaru/PhotoStrage/100221_2.png
MX1201がこじんまりとしていていい感じでつ。付属の200W電源はAtom用に使うとすると思ったよりうるさい。なのでこれは静穏のものを買いなおそう。気がむいたら(うわ。
D510MOは1000BaseなのでSamba共有も当然速い。変換用PCのffmpegもこんな感じで
http://www.misao.gr.jp/~subaru/PhotoStrage/100221_3.png
900kbits/s〜1000kbits/sあたり。うむ。十分。どうせ放置して変換させるだけなので。変換が間に合わなくてもそもそも録画されたものを消化できないので即時見たいテレビなんてないのサ。(←負け惜しみか?。
なんか結局のところML115が余って、たんなるエコ環境構築になっただけの気がするけど、まーいいのさー。

5.HT03A用動画変換

TvRockでファイル名の先頭に mobile とかつけておいて、変換用PCのPerlでファイル名の先頭が mobile だったらHT03A用に画像サイズをちーさく、圧縮率高めにしていまふ。
こんなかんぢ。

BonTsDemuxのffmpeg設定
Parhelia P650でTV出力/nvplayer 早見早聞再生用
X264_mp4	=-f mp4 -vcodec libx264 -aspect 16:9 -vtag mp4v -crf 24 -flags2 dct8x8 -level 51 -acodec libfaac -ac 2 -ar 48000 -ab 128k -s 704x396 -y -threads 2 -coder 1 -deinterlace -top -1 -qmin 10
X264_mp4_EXT	=mp4

HT03A再生用
X264_MOBILE	=-f ipod -vcodec libx264 -aspect 16:9 -acodec libfaac -ac 2 -ar 44000 -ab 64k -s 480x272 -b 256 -r 14.985 -y -threads 2
X264_MOBILE_EXT	=mp4

BonTsDemuxを呼び出す設定
通常用
my $OPT_BON        = "-encode X264_mp4 -sound 1 -nd -vf -start -quit -i $WORK_OUT_TSS -o $WORK_OUT_MP4";
HT03A用
my $OPT_BON_MOB    = "-encode X264_MOBILE -sound 1 -nd -vf -start -quit -i $WORK_OUT_TSS -o $WORK_OUT_MP4";


通常用の変換設定だと、元のTSファイルがこれまでの平均値で 6.23% までちーこくなりマフ。TsSplitterからBonTsDemux までの時間は、元の放送時間に対して 110.57% なので、1.1倍くらいかかっちゃってまふね・・・。Core2Duo T5500はこんなもんかー。いずれはもっとつおいCPUな子のノーパソが欲しいのう。でも、そもそも録画された動画を消化できないので遅かろうが速かろうがどうでもいいけど。


HT03A再生用の出力で、nswPlayerで普通にサクサク見れます。電池食うけどネ!


そして現在のHT03Aはこんなかんぢ。
http://www.misao.gr.jp/~subaru/PhotoStrage/100221_4.jpg


ごきげんよう