2012/05/07

wavecast-01 画質調整

ルートになれるようになったので自分なりの調整を施してみた。
その前に簡単に録画環境を書いておく。

/root
ルートユーザディレクトリに色々はいってる。チューナ(FSUSB2N)のドライバ、ffmpeg、その他この製品に関する様々なプログラムが保存されている。なんかテスト環境とかもそのまま入ってる。


/root/task
録画関係のスクリプトは全部/root/taskに入っていて、全てルート権限で実行される。
これからここをいじるので、オリジナルをとっておこう。

tsrec2
地デジ録画は、/root/taskに直接入っている’tsrec2’というプログラムで録画している。
録画TSファイルは一旦/tmpに記録される。それにしてもtsrec2ってなんだろ?ぐぐってもそれらしいのは出てこないし。独自なのかな? じゃなくて、recfsusb2n でした。

TSからmp4になるまで
at00?.shがスケジューラから順に呼び出されて、 vidrecsrc?.pyが起動、 そこからvidrecsrc?.shが呼ばれて最終的に以下の順でプログラムが起動するようになっている。
  1. tsrec2
    /tmpにオリジナルTSファイルを保存(録画)
  2. tssplit2
    オリジナルから必要なHDストリームを取り出す
  3. tsdemux2
    ビデオ(m2v)とサウンド(wav)に分離
  4. ffmpeg
    m2vをx264にエンコード。ここが一番要なところ!
  5. ffmpeg
    wavをfaacでエンコードして、先ほどのx264と合成
  6. mp4box
    最後に iPod 対応にした?mp4ファイルを/home/wavecast/media/<date>に保存。ファイルのオーナーをwavecastにして公開
ffmpegで直接TSからmp4にすることも出来ると思うが、以上のような手順になっている。多分色々やった末にこのような手順に落ち着いたのだろうと思う。なので私は今のところ敢えてこの手順を変更するつもりはない。

画質調整
m2vからx264へのエンコード処理を調整すれば自分の欲している画質に調整できそうだ。
肝心な処理は、vidrecsrc5.shに書かれている。 オリジナルは、
/root/task/ffmpeg -threads4 -i /tmp/$1-h.m2v -vcodec libx264 -vre ibento7 -b 800k -r 20 -s 720x384 -aspect 16:9 -an -f mp4 /tmp/$1-h.264
これを以下のように変更した
/root/task/ffmpeg -threads4 -i /tmp/$1-h.m2v -vcodec libx264 -vre ibento7 -b 1800k -r 24 -s 960x540 -aspect 16:9 -an -f mp4 /tmp/$1-h.264
実施したのは、ビットレート、解像度、fpsの変更。
ffpresetのibento7は、/root/.ffmpegに記述されている。見たところ悪くないのでそのまま使用した。
解像度は日頃iMovieでホームビデオを整理しているがその解像度が960x540なので同じにした。
-r 20だと若干カクつきが気になったので24にちょいアップ。おまじないに近いが。
後はビットレート。cqpでの画質調整は難しいので-bを使う辺りは自分の考えに合っている。
自分の経験ではDVDレベルなら1500kbps程度あれば見れるものになる。
それよりもちょいよくしたいので、1800kbpsにした。欲しい画質はこれで得られた。
これ以上の画質を求めるなら、それなりのハードを購入したほうがいいんじゃないかな。と自分を納得させる。

iPad2やiMac、外出先からも見てみたがスムースな再生ができている。
自分は3G回線を通して見たいとは思わないので、LAN、Wifiでの視聴が出来れば十分だ。

標準では3G回線や海外で見ることを前提とした調整がされているようだが、自分は家で楽しむだけなので、このくらいがちょうどいい。

出先で見たい時はiTunesでファイルを突っ込んでオフラインでみる。
そもそも私は3Gや4G回線を使えるデバイスを持ってなかったりする・・・ランニングコスト高いし。


次にやりたいのは、最近購入したAppleTVでwavecastの録画データを直接再生したいのだ。
だけど3rdなのでまだ脱獄が出来ない orz。。。脱獄すればブラウザ経由で普通に見れるかな?
NASとして見れるかな?UPNPで見れるかな?
この辺はAppleTVで色々出きるようになってからか。今は我慢して普通にiPadでAirPlayする。


(追記)

tsrec2はrecfsusb2なんだけれど、若干修正が加わっている。 こちらの記事 とほとんど同様のパッチが当たっている。これのお陰でffmpegで直接扱えるようになるんだそうな。

0 件のコメント:

コメントを投稿