ひとりごと

新しい記事:[2029]  古い記事:[2027] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2007/10/10 (水)

・ 自動エンコードノススメ

ご存知の方も多いかと思いますが、夜な夜な深夜アニメを録画してはiPodで再生できるようにMPEG4エンコードしております。録画もエンコードも自動で出来ているので楽でよいのですが、キャプチャカードに付属の自動エンコードソフトは下記の点でよろしくありません。

自動化するなら FreeBSD が都合が良いのですが、エンコードソフトはWindows用が多いのです。でもずいぶん前から探し続けてようやく見つけました。ffmpeg です。てゆーか、エンコード可能なパラメータ設定にようやくたどりついたというか、ffmpegがようやくコンパイルできたというか(笑)。

1. iPod touch 用に 上下帯付アナログ放送を480x360で出力
# ffmpeg -i source.mpg -y -croptop 60 -cropbottom 60 -s 480x270 -aspect 16:9 -vcodec libx264 -mbd 2 -coder vlc -g 250 -b 320k -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aic 2 -cmp 2 -subcmp 2 -acodec libfaac -ac 2 -ab 128k target.mp4
できるファイルはビットレート高めなのですが、1 pass でも十分綺麗です。ちなみに出来たファイルをiPod 5G に転送しようとするとiTunesがエラーを表示します。-level 30 や 21 を指定しても同じ。HandBrakeで作成した480x270サイズは転送可能なので理論的にはそのサイズのファイルは作成可能なはずなんですけどね。考えうる方法をぜんぶ試したつもりだけどダメでした。疲れたよ、パトラッシュ・・・
2. iPod 5G カーナビ表示用に 上下帯付アナログ放送を320x240の縦長で出力
# ffmpeg -i source.mpg -y -level 13 -croptop 60 -cropbottom 60 -s 320x240 -vcodec libx264 -mbd 2 -coder vlc -g 250 -b 400k -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aic 2 -cmp 2 -subcmp 2 -acodec libfaac -ac 2 -ab 128k target.mp4
代わりといってはナニですが、iPod5Gで縦長が簡単に作れました。これ作るのって HandBrake でしか方法を知らなかったので深夜アニメがほとんど帯付ってことを考えると、自動化できれば非常に役に立ちます。ファイルサイズはキャプチャカード付属ソフトの半分で収まるにもかかわらず、ブロックノイズなど皆無でとても綺麗な表示です。

そんなわけで、イマイチなWindowsのエンコードプログラムの代わりに FreeBSD から自動的にH.264エンコードするスクリプトを書いてみました。私には難しいプログラムは書けないので、もちろんサルでもわかる簡単言語の PHP を使います。

  1. 元のMPEG2データはWindowsのドライブに入ってるので、FreeBSDのカーネルから mount_smbfs でマウントしておく
  2. 5分おきに対象ディレクトリを全走査し、前回走査時からファイルサイズが変わっていないものは録画済みとみなす
  3. 上記のようなデータ保存は面倒なので PostgreSQL を使う
  4. 他のファイルをエンコードしていない場合はリストの中からランダムに一つ選んでエンコードを開始する
  5. エンコードが正常に終了したらリストにエンコード済みと記載
  6. 元データがすでに削除されているものはリストから除外する
  7. とりあえず終了。cronで定期的に走らせるので未エンコードファイルは次の機会にエンコードされる

と、だいたいこんな感じ。てきとーに書いただけですが、とりあえず日常運用には支障ないところまで仕上がっています。今後の課題、というか問題点は下記のとおり。

まだ作成中ではありますが、正常に動けばなかなか便利っぽいですね。iPod touch用のコンポジットケーブルは注文してるのにぜんぜん来ないし、もうカーナビ用にはiPod5Gだけ使おうかしら(T^T)。

# 録画リストのうち帯付はどれくらいあるのかな?と数えてみたら、なんと20個も(笑)。
# 4:3はハヤテとおお振りぐらい。彩雲国物語は3:2?の微妙な帯付でした(^^)
[つっこみ]

新しい記事:[2029]  古い記事:[2027] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)