Ubuntu 12.04 で zfs。

自分用メモ。

FreeBSD も Linux 普段使っているけど、ファイルサーバが Ubuntu なので今回はUbuntuに。

基本的にはココにそってインストール

  1. python-software-properties をインストール

    $ sudo apt-get install python-software-properties
  2. リポジトリを追加
    ※新しい機能を少しでも早くなマゾは ppa:zfs-native/daily でも使って。

    $ sudo apt-add-repository ppa:zfs-native/stable
  3. インストール
    $ sudo apt-get update
    $ sudo apt-get install debootstrap ubuntu-zfs
  4. モジュールを確認する
    $ sudo modprobe zfs
    
    $ lsmod | grep zfs
    zfs                  1139658  0
    zcommon                47139  1 zfs
    znvpair                88369  2 zfs,zcommon
    zavl                   15010  1 zfs
    zunicode              331186  1 zfs
    spl                   172817  5 zfs,zcommon,znvpair,zavl,zunicode
    
    $ dmesg | grep ZFS:
    [  770.720533] ZFS: Loaded module v0.6.0.98-rc14, ZFS pool version 5000, ZFS filesystem version 5
    
    などと表示されればOK

DD-WRT。

ずっと愛用している無線LANアクセスポイント BUFFALO WLA-G54C
WEPしか対応していない年代物で、いい加減買い替えないとなぁと思いつつ
ケチっていたところ、オープンソースの無線APファームウェア DD-WRT
入れられるとのこと。
これを入れることによってWPA2対応、SSH、VPN、SNMPなどなどワクワクが
実装されるようだ…
早速入れてみよう!と思ったが失敗するとゴミになる恐れが。
そうなると無線LANが使えなくなってしまうので、どうしようかー…とその辺を見渡してみると
イーサネットコンバータ BUFFALO WLI2-TX1-G54 が転がっていた。
これまた年代物のWEPオンリー。今となっては使い道も薄れたイーサネットコンバータ。
調べてみるとこれもDD-WRT化が可能な模様。
しかもDD-WRT化することでアクセスポイントとしても使用できるだと!?
このアイテムこそゴミなので躊躇うことなく早速インストールしてみる。
before

after

無事インストールは成功。WPA2対応になったし純正より電波の感度も良くなったぞ?
まだまだ現役で頑張れそうだ。

Linuxでエンコードするテスト。

連休はわりとひきこもりで、ひさびさにPC三昧。
先月TV録画用PCを新調してから、録画はとても快調。
快調なのはいいことなんですが…撮りっぱなしの動画がたまってきてしまった。
お手軽に撮れるのはいいんですが、デジタル放送はHD解像度なMPEG2-TSのため、
地上デジタルで約17Mbps、BSデジタルで約24Mbpsと、かなり容量を食うのです。
HDDも大容量低価格化が進んでいるせいで、見て見ぬふりをしていましたが、
そろそろ対策を考えねば、と思い立ったわけです。連休だし。
MPEG2-TSのファイルは、フォーマットと容量のせいで扱いづらいのが難点。
そこで別フォーマットへエンコードする!と考えるのだが、アナログ時代に
キャプチャ&エンコードをやっていたせいか、インターレース解除、
フレームレート調整、CMカットなどなど…どうにもエンコードに手間を
かけたくなってしまうのです。
しかしそんなことを言っていてはいつまでたっても始まらないので、今回は
思い切って割り切って考えてみました。
撮った番組を扱いやすくするため、片っぱしからx264+AACなMP4にしてしまう。
そう思って調べてみると、便利そうなツールはWindows用がほとんど。
録画PCはWindowsだけどAtom化してしまったため、録画中を考えるとエンコードも
させるには少々戦力不足。
ほかに常時動いているPCをいえば、VMware兼ファイルサーバーのCentOS。
VMware上でWindowsもいくつか動いているけど、さすがにゲストでエンコードを
させるのも無駄すぎる。
Windows用の便利ツールでもよく使われているffmpegがlinuxでも使えるので、
今回は一番パフォーマンスの出そうなホストのCentOSでやらせることにする。
※ffmpegは適当に yum install ffmpeg します。
まずはMPEG2-TSをそれなりに使いやすくするため、録画PCからsamba共有領域へ
録画PCのWindowsでTsSplitterを使って余分なデータを落としながらコピーする。
※CMカットとかはしません。CMも季節モノなので重要視。言い訳じゃないです。
そこそこ画質を上げるため、ffmpegでx264を扱う時に必要なpresetファイルを
ちょびっと修正してあります。
そしてffmpegに食わせてみる。
今回試行錯誤した結果、以下の設定が自分的な妥協ラインのようです。
映像:1pass/1280×720/16:9/24fps化/インターレース解除/1200kbps
音声:48KHz/192kbps

ffmpeg -acodec libfaad  -i "/disk5/share/encode_tmp/encode_wait/200909010000_テスト番組_HD-1.ts" \
-f mp4 -vcodec libx264 -vpre "/usr/share/ffmpeg/libx264-hq2.ffpreset" \
-aspect 16:9 -s 1280x720 -b 1200k -r 24000/1001 -deinterlace -threads 0 \
-acodec libfaac -ac 2 -ar 48000 -ab 192k test_hq2_1200k.mp4

これで映像時間x1.5倍くらいの時間でできあがりました。
それなりに観れる画質になり、容量も30分番組で300MBほど。
インターレース解除とか24fps化がうまくいってないとか、細かいことを気にしては
いけません。手軽に観れるようにするのが目的なのです。
今のところ大きな音ずれ等は起きてないので、この設定で様子をみよう。
ひとまず手順ができたけど、エンコード設定を試行錯誤しすぎて連休が終わってしまったので、
自動化は今後の課題。
PC用、PSP用、ケータイ用みたいに複数自動でエンコードしてしまえば、ためずに観るように
なるのでは無いかと思います。たぶん。
そのうちMPEG2-TS⇒DVD化も試してみよう。
画質落として何を?って思うけど、今はまだBDよりDVDの方が主流かなと。
番組の録画頼まれて撮ったりしても、渡し方に困る時があるんだよね。
DVDならだれでも知ってるけど、MP4だとPCユーザーしかわからんだろうし。
今後は本当に保存したいものだけ手間をかけるようにしよう。