*** AX300とLinuxを使用したDivX変換について [#v444c34e]

- [[NEC AX300>http://121ware.com/nsserver/ax/]]シリーズは、ネットワークに接続するとデフォルトで録画したファイルの共有ができるように~
設定されており(いわゆる sambaなんですけどね)、そのディレクトリ構造を多少でも理解すれば色々と面白い~
ことができるのです。
- 事の発端は、HDDレコーダで録画したファイルをもう少し小さくすることは出来ないの? っていうとこから~
思い、最近では DivX ファイルをDVDに焼いただけのメディアを直接再生できるDVD/DivXプレイヤーもあるよ!~
と言われたことがキッカケです、ちなみにそんなプレイヤーは「ADN-100S」っていう型番です。~
資料によると、下記のファイル形式が再生できるんだってさ。
 MPEG4:DivX Pro/DivX 5/DivX 4/DivX 3/XviD 
 MPEG2:DVD Video/S-VCD 1.0/S-VCD 2.0/file.mpg
 MPEG1:VCD 2.0/VCD 3.0
 JPEG :JPEG 
 Kodak Picture CD

- DivXというと、例のWinなんとかっていうP2Pソフトで爆発的にばら撒かれたファイル形式のため、知っている人は~
MP3の形式と同じように「うさんくさい〜」っていわれます。ただ技術的には、MP3もDivXも非常に高度な技術を~
使用してます。(ファイルサイズが小さくクオリティが高いので・・・)

*** AX300単体でもできるようだが。。。 [#yeca0c7b]

- AX300は、上記でも説明した通りかなりマニアックな使い方ができるHDDレコーダーなので、これ1台あると~
Linuxなんか要らない!ってなりますが、そこはあれ・・・。純粋にHDDレコーダーとして使用しているので、~
他にも常時運用しているLinuxマシンでAX300の便利な一面だけ使えればと思いつつ作業してみたいと思います。~
※実は、環境を汚したくないだけなのよね。
-- [[NEC製ホームAVサーバAX300 をいじってみる>http://mp.avoidnotes.org/solo/ax300.html]]

*** Linux上での準備 [#f6d589a8]

- 今回は「DivXの変換だけ」なので、COLOR(RED){''ffmpeg'' パッケージ}をインストールすればok。~
あとは、COLOR(RED){''smbclient'' パッケージ}もインストールする。~
Linuxで録画して、うんぬんかんぬんはしないのでこれだけ。

: 前提条件 | COLOR(RED){''ffmpeg''}パッケージがインストール((パーケッジの[[インストール方法>パーケッジのインストールの巻]]はこちらを参照))されていることが条件。~
パッケージの確認は、COLOR(RED){''rpm -q ffmpeg''}コマンドで確認できるよ。~

-- 蛇足ですがLinuxでTV録画とかしたい人は「[[FFmpegの導入>http://shino.pos.to/linux/ffmpeg.html]]」を参照
-- ffmpegのパラメータは[[ここ>http://www.nurs.or.jp/~calcium/wiki/index.php?ffmpeg%20usage#content_1_0]]を参照してね。

*** AX300の基礎知識 [#i0fb81a1]

- ネットワーク内にAX300が1台しかないことを前提とすると「//ax300-01」というサーバ名でファイルが~
公開されています。実際ファイルが直接見えてしまって問題ないのかどうかは、ここでは論議せず(笑)~
そういう風になっていると思ってください。そのためWindowsのプロパティとして「//ax300-01/exports」~
という共有名が見えるハズです。(デフォルトのままの使用なら)

: COLOR(RED){''注意してください''} | 映像の録画書式(属性)カスタマイズせず使用してください。音声をDolby形式にした場合など、以下の構成と異なります。

- ディレクトリ構成を覗くと、録画を開始した映像管理ファイル(YYYYMMDD_HHMMSS.svi)と、その映像~
ディレクトリ(YYYYMMDD_HHMMSS)の2ファイル構成からなっています。~
 20040504_003000
 20040504_003000.svi

-- COLOR(RED){''注意してください''}にもある通り、映像の録画書式(属性)カスタマイズしない場合、映像音声がMPEG2形式で~
保存されいわゆる m2p形式となります。この形式からDivXに変換するのは非常に都合がよいのです。

- DivXに変換するには、Linuxを使用するためAX300からm2pファイルをもっていく必要があります。~
手作業で毎回PCに転送してとかするのも面倒ですし、smbclient を使ってファイルを持ってきてみます。

-- 例えば 20040504_003000 ディレクトリのファイルを参照したいとき。
 $ /usr/bin/smbclient //ax300-01/exports -N -c "cd 20050406_13; ls"
 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 2.2.7b-ja-1.0]
   .                                   D        0  Mon May  2 00:28:30 2005
   ..                                  D        0  Fri May  6 04:10:00 2005
   20050406_13.itbl                    A    92448  Mon May  2 00:01:46 2005
   20050406_13.m2p                     A 838219780  Mon May  2 00:01:46 2005
   20050406_13.INFO                    A      568  Mon May  2 00:01:47 2005
   20050406_13.rwi                            608  Mon May  2 00:28:30 2005
-- 例えば 20040504_003000 ディレクトリのm2pファイルを取得したいとき。
 $ /usr/bin/smbclient //ax300-01/exports -N -c "cd 20050406_13; get 20050406_13.m2p"

- DivX に変換するパラメータは、かなーり熟練が必要らしいんですわ。私も判らないしー(汗)~
しかしDivX に変換するっていうのは、かなりの確立でアニメ系が多いので願ったりかなったり♪~
なので、ぐぐってきたffmpegの最適っぽいパラメータをメモしときます。
 -vcodec mpeg4 -b 700 -qmin 2 -qmax 8 -r 29.97 -g 240 -hq -me epzs -acodec mp3 -ab 128 -s 320x240

-- 話が前後しますが、Linux で DivX に変換するには「ffmpeg」っていうのを使います。

- 変換したファイルを、CD/DVDメディアに焼いて「ADN-100S」に入れると簡単に再生できます♪♪♪

*** AX300から自動的にm2pファイルを取得しDivXに変換するツール [#hc415df0]

- ってことで「毎回手作業で行うのは大変」っていうこと、あんど面倒臭がりやの私ですしね、簡単に~
DivXに変換するツールを使ってみました。AX300単体、しまさわらさんのツールも便利そうですが~
微妙に私の趣味?いやいや、仕様と合わずだったのでさっくり作ってみました。
 仕様
  ・AX300にある映像ファイルを全て DivX には変換したくない。(しまさわらさんのツールは、全部変換)
  ・Ruby じゃなくて Perl がいいなあー。(しまさわらさんのツールは、Ruby)
  ・パソコンで編集した映像ファイルのみを DivX に変換したい。
  ・YYYYMMDD_NO という映像ファイルのみを DivX に変換したい。
  ・一度変換したファイルは、AX300から再度転送や、DivX 変換をおこなわない。
  ・DivX 変換の判定は、DBなど使用せず簡素なものとしたい。

-- 「パソコンで編集した映像ファイルのみを DivX に変換したい。」というのは、AX300 で録画した~
ファイルを AX10exporterツールを使用し、パソコンでCMカット等をした編集済みファイルを~
さらにAX10exporterツールを使用し、AX300に戻すということ。簡単に説明すると。
 AX300で録画 → AX10exporterツールでパソコンに転送 → CMカット編集等 → AX10exporterツールでAX300に転送
-- ここで「AX10exporterツールでAX300に転送」するときに、ファイル名を必ず「COLOR(RED){YYYYMMDD_NO}」にすること。
-- DBなど使用しない方法で簡素な仕組みを考えていたら、単に"ok"ファイルみたいのをおいて~
判定すればよいことに気が付きました。なので再度 DivX に変換したいときは、"ok"ファイルを削除~
するだけでよいというシンプルな物にしました。~
※COLOR(RED){どーせ}こーいうツールを使う人は、それなりに上級者だから(笑)

- 以下の部分を自分の環境に合わせて修正すること。
 と思ったけどPerlのプログラムだから読めるよね?きっと(汗)

- プログラムを使用しなんらかの問題あるいは影響がでても一切関知いたしません。~
その代わりbugやプログラム修正の希望などは随時うけつけます。

*** AX300から自動的にm2pファイルを取得しDivXに変換するツールのパフォーマンス [#p65d6202]

- BeSilent/VIA Eden ESP6000 (667MHz)での変換パフォーマンスは、以下の通り。
 変換元ファイル
  AX300 / 標準画像(SP) / 25分程度 / 800MB程度
 変換後ファイル
  pass-2 / 160MB程度 / 所要時間 180分(3時間)位

- 上記のことから、我が家では1日に5本程度の変換と、深夜帯にはOSの各種プログラムが~
実行されるため cron で実行するのは、朝の11時頃として動かしてます。ちなみに簡単な~
タイムスケジュール(笑)
 04:00 〜 07:00  OSによる各種プログラムの実行時間
 08:00 〜 10:30  メインサーバのファイルバックアップ実行時間
 11:00 〜 03:00  空き時間

*** 問題が発生!! [#b80bc74f]

- エンコードしたファイルを再生すると「FMP4 コーデックエラーとなりDIVXが再生できないよ!」という~
メッセージが表示され再生できなくなっちゃった(涙)。色々と調べたらどの時点からかは判らないけど~
Video FOURCC(4文字コード)が「FMP4」ってするよ!みたいな仕様になっちゃったみたい。

-- これを回避するには、エンコードしたファイルをバイナリエディタで下記のアドレスを書き換える作業が必要。
 0070: 46 4D 50 34 -> 44 49 56 58
 00BC: 46 4D 50 34 -> 44 49 56 58

--- [[Lonely Moonchild(2005-06-21)>http://www.tuins.ac.jp/~takao/mt/archives/cat_1.html]]

-- /usr/bin/ffmpeg の エンコードオプション?に以下のようにしてもいいみたいだけどダメだった。
 -ffourcc DIVX 

-- 2006/03/09 何故かエンコードできてなかった(-hq が・・・)
 原因は、yumによる自動アップデートが走りffmpegのバージョンがあがったおかげ。
 以前のオプションが使用できなくなっちゃった。とりあえず '-hq' オプションは使用できんみたい。

*** 参考にさせて頂いたサイト様 [#q92f6bae]
- [[NEC製ホームAVサーバAX300 をいじってみる>http://mp.avoidnotes.org/solo/ax300.html]]
- [[AX10/20/300関連(交換手順、ツール群)>http://www.birdland.co.jp/~wizd/ax10.html]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS