少し気になっていたので試してみた。

iPhone 4の動画再生仕様は公式サイトに記されているものを見ると、720p・30fps・Level 3.1、というものになっています。これに則ると、自分がエンコードした例えば以下のような動画は再生できないことになります。(MPCからメディア情報をコピペ)

僕は友達が少ない 第07話 「携帯電話は着信が少ない_| ̄|○」 (BS-TBS x264 1280×720 AAC).mp4

VideoID                               : 1Format                           : AVCFormat/Info                      : Advanced Video CodecFormat profile                   : High@L4.1Format settings, CABAC           : YesFormat settings, ReFrames        : 6 framesCodec ID                         : avc1Codec ID/Info                    : Advanced Video CodingDuration                         : 24mn 29sBit rate                         : 1 167 KbpsMaximum bit rate                 : 9 997 KbpsWidth                            : 1 280 pixelsHeight                           : 720 pixelsDisplay aspect ratio             : 16:9Frame rate mode                  : VariableFrame rate                       : 24.470 fpsMinimum frame rate               : 23.976 fpsMaximum frame rate               : 59.940 fpsColor space                      : YUVChroma subsampling               : 4:2:0Bit depth                        : 8 bitsScan type                        : ProgressiveBits/(Pixel*Frame)               : 0.052Stream size                      : 204 MiB (80%)Writing library                  : x264 core 120 r2120+639 552713cEncoding settings                : cabac=1 / ref=6 / deblock=1:1:2 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / fade_compensate=0.00 / psy_rd=0.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=0 / threads=3 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.76 / qpmin=8 / qpmax=42 / qpstep=8 / vbv_maxrate=40000 / vbv_bufsize=30000 / crf_max=0.0 / nal_hrd=none / ip_ratio=1.40 / aq=2:0.60Encoded date                     : UTC 2011-12-25 02:12:37Tagged date                      : UTC 2011-12-25 02:12:37Color primaries                  : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177Transfer characteristics         : BT.709-5, BT.1361Matrix coefficients              : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

12月25日、BS-TBS放送分のはがない7話をPV4でキャプチャしたものがソースになります。x264はJEEB氏のL-SMASH版r2120をお借りしています。Aパート序盤の60iテロップはItsで60fps処理させ、そこで吐き出されたタイムコードを入力した混合fpsのVFR動画です。でもこれでは仕様に適合しないのでバイナリを弄って、ProfileをMainに、Levelを3.1に変更して保存。それをiTunesにぶち込んで、Home Sharing等でiPhoneに送ると・・・テロップの60fps部分も問題なく綺麗に再生されました。

と、ここまでやってみたものの、実はバイナリを弄らずにそのままぶち込んでも再生できます。規格なんて関係ないっぽい。普通に1280×720の24fps(テロ処理の60i含む混合fpsも)であれば問題なく再生できるんですね。PS3の時にいろいろと苦労させられたのでiPhoneでも同じように面倒かと思って無視してたけど、余裕。

随分前に同じように試したときは、iTunesのライブラリに動画を追加することすらできなかったです。が、自分のx264設定の見直しでおkになったのか、iTunesやiOS等の仕様が緩くなったのか、よくわかりませんがいつの間にか可能になってました。おそらく前者のおかげだろうけど。こうなるとPS3も試してみたくなる(おそらく現在の設定でエンコした動画なら再生できるとは思う)けど、残念ながら実家の弟に奪われてます…。まじ返せ。

便利な時代になったなぁ、というお話でした。