最新iOSデバイス(iPhone4S, iPad2/3, iPod Touch 4th)の写真/動画解像度
tottepostの実装で撮る写真や動画の解像度を指定できるようにしたいと思ったんですが、AVCaptureMovieFileOutputやAVCaptureStillImageOutputを使う場合、AVCaptureSessionのsessionPresetプロパティにAVCaptureSessionPresetPhotoのような定数をセットする仕組みで、幅とか高さを指定するもんじゃないんですね。
で、設定画面に「Photo(2592x1936)」とか出したいじゃないですか。AVCaptureSessionから実行時に取得できないもんかなーと思って探したんですがたどり着かず、静的なデータで一覧になってないかなーと思って探しても、iPhone4やそれ以前のデータはAVFoundation Media Captureという公式のドキュメントやというサイトに載っているんですが、iPhone4S、iPad2/3*1、iPod touch 4thのカメラの解像度が見つからなくて困っていました。
というわけで手作業で調べた結果をリストにします。幅的な都合で3Gは割愛します。
3GS/4/4SはiPhoneです。P2/P3はiPadです。T4はTouchです。
写真解像度
Preset | 3GS(B) | 4(B) | 4S(B) | P2(B) | P3(B) | T4(B) |
---|---|---|---|---|---|---|
Photo | 2048x1536 | 2592x1936 | 3264x2448 | 960x720 | 2592x1936 | 960x720 |
High | 640x480 | 1280x720 | 1920x1080 | 1280x720 | 1920x1080 | 1280x720 |
Medium | 480x360 | 480x360 | 640x480 | 640x480 | 640x480 | 640x480 |
Low | 192x144 | 192x144 | 640x480 | 640x480 | 640x480 | 640x480 |
Low/Mediumの4S/P2/P3/T4に自信がありません、なんか値が変わらない...。しかし、iPad2のカメラしょぼすぎる...。
動画解像度
Preset | 3GS(B) | 4(B) | 4S(B) | P2(B) | P3(B) | T4(B) |
---|---|---|---|---|---|---|
High | 640x480 | 1280x720 | 1920x1080 | 1280x720 | 1920x1080 | 1280x720 |
Medium | 480x360 | 480x360 | 480x360 | 480x360 | 480x360 | 480x360 |
Low | 192x144 | 192x144 | 192x144 | 192x144 | 192x144 | 192x144 |
バックカメラの解像度のみです。
動画の場合はMediamとLowは基本同じです。iPhone4、iPad2とTouch4thは720pで、4SとiPad3は1080pのようですね。
AVFoundationのsessionPresetにこれらの値をセットする事で解像度を変える事ができます。
session_ = [[AVCaptureSession alloc] init]; [session_ beginConfiguration]; session_.sessionPreset = AVCaptureSessionPresetPhoto; [session_ commitConfiguration];
みたいな感じですね。
以上メモでした。
せんでん
1タップで写真共有tottepost
カメラのついたiPad/iPhoneで撮った写真を、その場でFacebook/Mixi/DropboxなどのサービスにアップロードできるtottepostというiOSアプリを開発しています!詳しくは、iTunes App Storeをご覧ください。
*1:あえて3と呼びます