2009年09月13日

iPhone 3GSの動画性能

すでに各所で伝えられている通り,iPhone 3GSではHD画質のH.264ビデオを再生することができるようです。確認されているところでは,1920x1080の解像度に対応するようです(iPhone Fan)。海外からの未確認情報としては,少なくとも30Mbps,60fps,CABAC対応と言われています。
手元のiPhone 3GS(OS 3.1)で試したところ,MPEG Exporter TNGでエンコードしたApple TV用720pはさくさくと再生されるようです。ただし,iTunes 8.2.1はiPhoneへのHD画質の動画の転送を行ってくれなかったので,Files Liteを用いてWi-Fi経由で転送して再生しました。iTunes 9などでどう扱われるかは不明です。
とりあえず,iTunesが転送に対応していないことと,ソースがそれほどないこと,再生してもiPhone本体の解像度はハーフVGAどまりであること,そもそも新しい規格上の上限がまだ見えないことなどから,MPEG Exporter TNGのエンコードプロファイルの拡張はすぐには行いません。試したい方はカスタマイズ画面からいろいろH.264のパラメータをいじってみてください。
iPhone 3GSに採用されているSamsung S5PC100はスペックシートでは720p 30fpsのキャプチャと再生と記載されているようですが,実際にはそれよりもずっと性能が良いようです。また,iPod touch 2.5G(とりあえずこう呼んでみました)もおそらく同様だと思われます。
posted by MacLab. at 16:21| Comment(0) | TrackBack(0) | -

2009年07月05日

古いiPhone OSでは新しいバージョンのアプリを利用できない

私のiPod touchは初代なので,OSもバージョン2.2.1のままです。OS 3.0リリース後に初めてアプリのバージョンアップをしたところ,いくつかのアプリはOS 3.0以上でないとインストールできないことがわかりました。幸い,iPod touch内の古いバージョンのアプリは削除されなかったので,そのまま使い続けることはできますが,iTunes内のアプリは更新されてしまったので,iPod touch上にインストールされていなかったアプリについてはもう古いOSにはインストールすることができなくなってしまったようです。インストールできなかったのは31の更新アプリのうち3つですが,残りの28についてはそもそもインストールする設定にしていなかったので検証がされていないだけで,おそらくその多くがOS 2.xとは非互換でしょう。
OS 3.0がリリースされた当初は,3.0で利用できないアプリがあることが話題となりましたが,主要なアプリが3.0対応を果たした今,2.xとの互換性についてはあまり顧みられていないようです。しかし,アップデートが有償であることや処理能力との兼ね合いを考慮してアップデートしていないユーザーも一定数はいるはずです。古いOSを利用しているユーザーは,古いバージョンのアプリのバックアップをとっておき,基本的にはアップデートを行わない方がいいだろうと思います。
なお,iPod touch上のAppStoreで更新した場合にどうなるのかは試していません。OS 2.xの方は試さない方がいいと思います。更新後に起動できないと言われても,どうしようもなくなるからです。
なお,iTunesの画面上でアプリのアイコンを選択してキーボードのCommand + Rを押すと,そのアプリの実ファイルをFinder上で確認することができるので,これをMac上でバックアップできるものと思われます。また,一部については同じフォルダ内に前のバージョンが保存されていることもあるようですが,そうでないことも多く,その違いが何によるものかはわかりません。
posted by MacLab. at 18:43| Comment(0) | TrackBack(0) | -

2008年01月16日

Apple TVプロファイルとffmpegオプション(備忘録)

MPEG Exporter TNGの設定アシスタントr.80で導入した新しいApple TV用のプロファイルで大量の動画をエンコードしてから,それをじっくりと見ていたら,ブロックノイズがけっこう存在することに気がつきました。
エンコード時のログをとると,可変ビットレートの動作がおかしく,-b 5000などが指定してあるにもかかわらず2500kbpsくらいでビットレートが頭打ちになり,あとはq値がどんどん悪くなっていました。
調べてみると,-crfに-qminを併用すると画質が悪くなるという記事があり,-qminを外すと確かに画質は良くなるのですが,-bだけが有効で-crfが無視された固定ビットレートになっているだけの様子。やはり-crfと-qminの指定は必須かと。
次に,ビットレート上限を指定している-b 5000と-maxrate 5000をそれぞれ動かすと,-maxrateを上げることで先のビットレートの頭打ちの上限も変化するようです。おおよそ,-maxrateで指定した値の半分くらいがビットレートの変動の上限となっているらしいので,Apple TVの上限5Mbpsに対して-maxrate 10000を指定すると,ちょどいい感じになりました。
そういえば,流布されている変換君の設定の中で,異様に大きい-maxrateを指定しているものがいくつかあったのは,これが理由なのかもしれません。すでに一部では既知の問題なのかもしれません。
-maxrateをどれくらい大きくとったらいいかについての直接的な資料は見つかりませんでしたが,変換君WiKiでは-btの説明で「btの値/bの値 が -ratetol オプションの値として渡される」とあり,そのため低ビットレートでは「2pass やってもビットレートをあんまり守ってくれない」ことになるのだとか。「デフォルト=4000kbits/s」のため,-b 5000のApple TVではこれによる変動は小さくなり,この指定値を変える必要はなさそう。
この他にqcomp(q値をどのくらい変動させてよいかの尺度)というパラメータを発見。-qcomp 1.0にしたらq=51に張り付いてしまったので,-qcomp 0.1にしたらいい感じでビットレートが変動するようになりました。この方が意図した通りのビットレート指定を守りやすくなるようです。
bufsizeを指定しないと可変ビットレート関係のパラメータが無視されるそうです(メモ)。
-trellis と -flags trellについて,x264では-trellisの方が有効なのだとか(比較的新しいffmpegの場合)。-flags trellはMPEG-4で使える模様。
そもそも,Apple TVのH.264はProgressive Main ProfileといいつつもCAVLCと記載があり,CABACは使えないらしいので,-coder 0を指定し,-trellisは使えないことになります。プロファイルレベルは基本的には3.1らしいのですがCABACの使えないmain profileという独自の変則的なプロファイルだそうです。
ちなみに-crf指定では2 passは画質が極端に劣化するので事実上使えません。
新プロファイルr.81ではこれらの工夫に加え,ついでにブロック指定を解除してエンコードを高速化し,Bフレームを指定して圧縮率の改善をはかりました。
これで一段落と思いいくつかのデータを変換していたら,ビットレートが基準をオーバーしてApple TVに転送できないファイルがいくつか出力されました。おそらく-qcompの変更によりビットレートが変動しやすくなりオーバーしたと考えられたため-maxrateを-bと同じ値に戻したところ,案の定,エラーはなくなりました。-qcompが十分に低ければ-maxrateの水増しは必要ないようです。

intel Core Duo 2GHzのiMacで,720pのHD動画が再生時間の2.5倍くらいの速度で変換されます。r.80よりも変換速度が速く,画質も向上しました。

新プロファイルr.81はネットワークインストーラにより配布される予定です。
posted by MacLab. at 00:00| Comment(0) | TrackBack(0) | -