のらぬこの日常を描く

ノージャンルのお役立ち情報やアニメとゲームの話、ソフトウェア開発に関する話などを中心としたブログです。

androidタブレットを使って通勤電車で快適にアニメを見るためのたった一つの方法

前説

たった一つ、というのは少し言いすぎたかもしれない。

先日、XPERIA VLを買いました。

以来、nasneで撮ったアニメを XPERIAにお出かけ転送し、通勤電車の中でマターリと鑑賞する生活を始めました。

しかし、なにか物足りない。

そう、どうせなら、もっとおっきな画面で見たいよね。

ということで、先日、10.1インチタブレットとPT3を追加購入。

電車の中で快適なアニメ視聴生活を始めるための環境つくりを頑張りました。

目標

目標は大事ですね。

今回は以下をすべて満たすことを目標としました。

  1. 僕がやるのは、事前に見たい番組を録画予約するだけ。それ以外は何もしない。
  2. 当然、予約された番組は正しく録画されること。
  3. 録画された番組はそれなりに高画質なmp4として自動でエンコードされること。
  4. エンコードされたmp4は、翌日朝までに、自動的にtabletのmicroSDに転送されること。

この間の3連休まるっと潰しましたが、結果、すべての要件を満たす環境を整えることができました。

普段通りに寝て、普段通りに起きて電車に乗ってタブレットを立ち上げると、その中には前日のアニメが格納されているという、これぞ至福の環境なので。

サイズをなるべく小さくしつつ、それなりに高画質なmp4を翌日朝までに準備する。

PT3を使って、生TSがパソコンのHDDに保存できた前提で話を進めます。

TS保存までの話は僕が寝ている間に妖精さんが勝手に頑張ってくれたことなので僕はよく知りません。

さて、TSが保存できたらエンコードです。

エンコードは、携帯動画変換とかaviutilとか無料なものから有料なものまで色々あるみたいですが、僕は、GUIのフロントエンドは特に使っていません。「オレ流FFMpegビルドツールの巻」というサイトで公開されている自動ビルドツールを利用してビルドしたffmpegコマンドラインからそのまま使っています。

c:\ffmpeg>ffmpeg -version
ffmpeg version N-48796-g5b9126b

そろそろ飽きてきたので、mp4変換に使用しているコマンドラインパラメータだけ載せて今日は終わりにする。続きは書かないかもしれないけど、ひょっとしたら書くかもしれません。

なお、ffmpegコマンドラインオプションも時々変わるようなので、古かったら新しかったりする場合、正常に動作しないかもしれません。

エンコードに使用しているコマンド、presetは以下の様な感じです*1

インタレは自動解除。画質はかなり良好ですが、ファイルサイズも250Mb~350Mb+ 程度でコンパクト*2。割とよく出来てるんじゃないかとは思っています。

ただ、いくつかのサイトのテンプレを切り貼りして、さらに多少自分でパラメータいじったりしているので、多少不要なパラメータ等混ざっているかもしれません。

  • 実行コマンド
ffmpeg -y -i "@ffmpeg_input" -vcodec libx264 -vpre libx264-high -preset veryslow -r 30000/1001 -crf 22 -vf "yadif=0:-1" -s 1280x720 -vsync 1 -acodec libfaac -ac 2 -ar 48000 -ab 160k -threads 0 "@ffmpeg_output" >> ffmpeg.log
  • -vpre で指定している preset の中身
# libx264-high.ffpreset
vcodec=libx264
vprofile=high
coder=1
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
level=40
bf=8
b_strategy=1
bidir_refine=1
g=400
cmp=chroma
refs=8
sc_threshold=60
bufsize=4000k
qmin=10

ffpresetの g= と refs はちょっと盛り過ぎかも知れません。ネットで調べると、gは300、refsは6くらいが適正のようですが、数値を上げればサイズが小さくなる可能性も上がるらしいので多少大きめにしてみました。

*1:うちのcorei3PCでは、30分アニメのエンコードに1時間以上かかりますが、朝までに終わればいいという要件は一応満たせています。

*2:CM入り。30分アニメならフルで30分