« SheevaPlugをtgtでiscsi targetにしてみたメモ | メイン | MacをnetbsdのパッケージでiSCSIサーバにしてみるが失敗 »

FriioのTSをmacやLinuxのffmpeg/mp4boxで処理するメモ

かなり長く眠っていた地デジチューナFriioを引っ張り出して録画サーバにしようとあれこれやってみました。とりあえず録画は無事出来たのですが、若干音ずれがあるので先人たちに感謝しつつ忘れないようにMacやLinuxで修正してh264に変換するためのメモ。

使ったもの
  • ffmpeg
  • mp4creator
  • mp4box
インストール
  • Ubuntuではmedibuntuのリポジトリを追加して"apt-get install ffmpeg gpac mpeg4ip-server mpeg4ip-utils"
  • MacOSXでは macportsを使って"port install ffmpeg mpeg4ip"してから"gpac"を手動インストール
    1. svn co https://gpac.svn.sourceforge.net/svnroot/gpac gpac
    2. cd cpac
    3. ./configure --disable-wx
    4. make
    5. sudo make install
使い方
かなり適当ですが以下の用な感じ。 shellかmakefileにしておくと便利

recfriio --b25 xx xx foo.ts 
ffmpeg -threads 2  -i foo.ts -vcodec libx264 -vpre iphone -b 1200k -r 30000/1001 -map 0.0:0.0 -s 720x400 -aspect 16:9 -an tmp.mp4 
ffmpeg -i foo.ts -acodec copy -map 0.1:0.0 -vn audio.aac
mp4creator -aac-profile=4 -create=audio.aac audio.mp4
ffmpeg -i audio.mp4 -acodec libfaac -ab 128k -ar 48000 audio-tmp.mp4
mp4box -add tmp.mp4#video:delay=300 -add audio-tmp.mp4#audio -new result.mp4
rm -f audio.aac audio.mp4 audio-tmp.mp4 tmp.mp4

映像が先行している時は映像に逆なら音声にmp4boxのdelayオプションでmsを指定して適当に遅らせて微調整。音ずれがない時はmp4creatorでの出力先をtmp.mp4にする。人間というのは良くできているもので音と映像が数フレームでもずれると違和感を覚えるんですよね。

本当は映像もcopyで分離してmp4を作って使い慣れたHandBrakeを使いたかったのですが、ffmpegのバグで映像のcopyがソースによって失敗、音声もエンコードに失敗してしまうことがあるようです。

しかし音ずれ対策は自動では出来ないのかな。。。
ffmpegのプリセット
vpreのiphoneは古いiPod touchでも再生できるようにレベル低めで調整中。かなり適当ですが以下のような感じで~/.ffmpeg/libx264-iphone.ffpresetを作成。
coder=0
cmp=+chroma
partitions=+parti8x8+parti4x4+partp8x8+partb8x8+partp4x4
me_method=full
subq=7
me_range=16
g=150
keyint_min=25
qcomp=0.6
qmin=10
qmax=51
qdiff=4
bf=0
refs=1
directpred=1
trellis=0
flags2=-wpred-dct8x8+mbtree
wpredp=0
level=30
maxrate=1400k
bufsize=14000k

PCで見るために画質を追求するならビットレートを上げたりCABACの設定をした方がいいですが、とりあえずiPhone/iPadやPCでもちょっと視る程度にはワンセグよりも綺麗だし、AirVideoのディレクトリに放り込んでおけば外出先で低ビットレートに変換しながら見れます。
 
サーバにしているSheevaPlugでFriioを動かすのも少しはまったのですが、それは後日。ARM 1.2Ghzの実力を見てみたいのでffmpegでの変換にもいずれ挑戦。 
追記: SheevaPlugにx264を入れffmpegをリコンパイルしてエンコードをしてみました。mpeg4で2.5fps,  x264で0.4fps。ちょっと実用的な範囲を超えてしまっているようです。チューニングもですがFPUがないのはいたい模様。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/894


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2010年08月27日 17:10に投稿されたエントリーのページです。

ひとつ前の投稿は「SheevaPlugをtgtでiscsi targetにしてみたメモ」です。

次の投稿は「MacをnetbsdのパッケージでiSCSIサーバにしてみるが失敗」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー