====== PlaggerでニコPodを作る ======
カッとなってiPod touch 16GBを買った。今は超wktkしている──本当に衝動買いでした。俺は悪くありません。ネイティブソフト開発用のSDKを出すなんて言うAppleが悪いんです。まだまだ在庫は沢山あるという大学生協が悪いんです。なーに、nano 8GBを2つ買って16GBにする事を考えたら、touch 16GBだってそんなに高いものじゃありませんよ。うん、そうなんですよ。そうそう。そうじゃないと困ります。………カードの支払いどうしようorz
そんなこんなで買ってしまいました、iPod touch 16GB。
折角動画が見れるんだからと、何かいい活用方法はないかと探していたら、[[http://plagger.org/|Plagger]]というツールを使う事でニコニコ動画の動画を**自動で**取り込めるらしいです。「自動」ってのがとても素晴らしいです。という訳で早速、ニコニコ動画ランキング取込システム、その名も「ニコPod」を構築してみました。
{{ :blog:2007:20071020_0.jpg |}}
===== インストール =====
PPC Mac mini 1.4GHz(M9687LL/A)+ Mac OS X v10.4.10上に構築しました。
インストール方法は「[[http://www.power-st.jp/blog_archives/2007/10/plaggerpodcastitunes.html|ニコニコ動画からPlaggerでPodcastを作りiTunesで見たいゼ]]」で丁寧な解説がなされているので、この通りに進めて行きます。ただし、設定ファイル(.yaml)には独自のものを用い、その関係で''Filter::FFmpeg''へのパッチも独自のものを当てます(後述)。また、[[http://www.power-st.jp/blog_archives/2007/10/platunes.html|二コPlaTunesの補足]]の''DB_File_URL.pm''関連の設定も一緒に行います。
FFmpegは、上記サイトで紹介されているバイナリではなく、MacPortsでビルドしたものを用いました。
===== 設定ファイル =====
global:
assets_path: assets/
plugins:
- module: Subscription::Config
config:
feed:
- url: マイリストのアドレス
- module: Filter::FetchNicoVideo
rule:
- module: RecentN
count: 10
- module: Deduped
engine: DB_File_URL
path: /Users/Decomo/Sites/nicopod/nicoPod.db
config:
mail: アカウント
password: パスワード
id_as_filename: 1
dir: /Users/Decomo/Sites/nicopod
- module: Filter::FFmpeg
config:
dir: /Users/Decomo/Sites/nicopod
ext: MP4
command: /opt/local/bin/ffmpeg
encoding: utf8
option_string: '-y -threads 2 -s
お手本とした設定ファイルと比べて、特にFFmpegのエンコードオプションにかなり手を加えています。画質重視の設定なので、PPC Mac miniには結構荷の重い仕事です。エンコード所要時間は実時間の2.5〜4倍と言った所です。
注意点として、iPod touch(現時点での動画対応iPod全て)のH.264はベースプロファイルなので、BフレームとCABACが使えません。つまり、-bfオプションと-coder 1を指定しても、再生出来ない動画になってしまいます。また、最大参照フレーム数(-refs)は6が最大です(これより大きい値だとブロックノイズが出ます)。しかし、BフレームとCABACが使えないH.264なんてゴm(ry
FFmpegのバージョンによって、ビットレート指定の単位が違います。昔はkbpsだったのですが、最近はbpsになったようです。SVN-r9102ではkbpsでした。
===== Filtter::FFmpegに手を入れる =====
可能な限り小さい容量で高品質を目指すべく、Filter::FFmpegに手を入れます。
[[http://d.hatena.ne.jp/hakobe932/20070923/1190594172|はこべにっき#]]さん作のパッチは、動画のアスペクト比によって出力動画サイズを640x480と640x360に切り替えていますが、ニコニコ動画の最大サイズは512x384なので、そのサイズで出力しても旨みがありません。
ここではiPod touchの画面解像度に合わせて、アス比が4:3の時は432x320、16:9の時は480x272で出力する事にします。
また、元動画の音声トラックの仕様(サンプリング周波数/チャンネル数)をそのまま継承して、音声のエンコードを行うようにしました。まぁ、これは気休め程度です。本当は元のビットレートを元に、エンコードのビットレートを変えたかったのですが、生憎、元ビットレートを取得する手段が無いようなので……。
差分:[[http://www.decomo.info/files/garakuta/FFmpeg.diff|FFmpeg.diff]]
はこべ日記さんの差分も取り込んであるので、FFmpeg.pmにそのまま適用する事が出来ます。
0 2 * * 1-6 /Users/Decomo/Tools/plagger/nicoPodDailyUpdate.sh
0 2 * * 0 /Users/Decomo/Tools/plagger/nicoPodWeeklyUpdate.sh
===== まとめ =====
全て上手く行けば、iTunesにPodcastとして動画を取り込め、それを転送すればiPod touchで見る事が出来ます。
{{ :blog:2007:20071020_1.jpg |}}
私は、週間マイリスト登録数TOP10の動画を自動的に取得&変換するようにしています。これで流行りの動画チェックもバッチリです。
生成した動画は、動画の内容にもよりますが、元ファイルと比べて150〜200%ほどの大きさになる事が多いようです。品質犠牲にすればより小さくすることも可能ですが、私的には今以上の品質低下は避けたい所です。欲を言えばもう少し画質を上げたいのですが、容量とのトレードオフを考えると、今の設定が丁度いいかなと。
===== 参考サイト =====
** PoWer Station-WeBlog!
.. [[http://www.power-st.jp/blog_archives/2007/10/plaggerpodcastitunes.html|ニコニコ動画からPlaggerでPodcastを作りiTunesで見たいゼ]]
** はこべ日記
.. [[http://d.hatena.ne.jp/hakobe932/20070923/1190594172|iPod touch向けのニコニコ動画のPodcastを生成する]]
** ゆーすけべー日記
.. [[http://yusukebe.com/archives/07/08/09/105502.html|Plaggerでニコニコ動画のFLVとコメントを一括ダウンロード!]]