AVFoundationでカメラ(ムービー)撮影するときの、transform設定の注意点
最初はAVCaptureConnectionのvideoOrientationから始めるのがお手軽でよろしいです。そして、AVAssetWriterInputのtransformに至る泥沼に入り込んでいくのです。
2014-12-15 10:31:40@hkato193 transformにrotationだけではなくtranslateも入れるよう、親方の影響力で啓蒙してください。translateが入っていないポートレート(90度回転)な動画をOS XのQuickTime Playerで回転するとおかしくなったり。
2014-12-15 11:02:36@norio_nomura 実際のところ、どんな値のtranslationを入れたらいいか分かっていないので、後で試してみますです。
2014-12-15 11:06:31@hkato193 次の手順を試してみて 1. Hyperlapseでポートレイト撮影 2. Image CaptureでOS Xへ取込 3. 動画をQuickTime Playerで開く 4. 編集→反時計回りに回転
2014-12-15 11:09:22@norio_nomura どこを原点にして回転しちゃっているかがまだ分かっていないので、標準カメラとの違いをMediaInfoで見ようとしていますが、原点の違いだけかどうかが不安なので解説お願いします<(_ _)>
2014-12-15 11:17:42@norio_nomura 標準カメラのスローモーション(=背面カメラ)でも、反時計に90°だけはNGですね。これはどういうことだろう…。
2014-12-15 11:21:16@hkato193 Hyperlapseの映像は、size(width:1280, height:720)にtransform(a:0,b:1,c:-1,d:0,tx:0,ty:0)が入っています。
2014-12-15 11:24:12@norio_nomura なるほど…。ところでこのtransformってどうやって確認したのですか?MediaInfoだとRotationとして出てしまって、詳細が分かりませんでした。
2014-12-15 11:30:40@hkato193 あの挙動が気に入らなくて、自作アプリ内ではtransformを勝手に矯正する様にしましたw
2014-12-15 11:47:09@hkato193 translationが入っていなくても初期状態では表示出来てるから、QuickTime Playerのバグとして報告すべきなのかも。
2014-12-15 13:54:28@norio_nomura 標準カメラとHyperlapseのムービーの各メタデータをExiftool sno.phy.queensu.ca/~phil/exiftool/ で取り出して比較したのですが、Matrix Structureがどちらも同じで、どこに違いがあるかが謎に包まれ始めました。うひ
2014-12-15 14:49:48@hkato193 えっとね、さっきのはAVAssetTrackのpreferredTransformです。
2014-12-15 14:55:34@norio_nomura あ、すみません。のむらさんの作ったアプリだと、きっとAVFの何かで見ているのだろうなと思ったので、じゃあメタデータとしてどう違っているだろうと別経路で調べた次第です。そしたら唯一関係しそうなMatrix Structureが一致という事態になり…
2014-12-15 15:01:53Exiftool owl.phy.queensu.ca/~phil/exiftool/ が、およそ考え得るメディアフォーマット(Lytroとか!)のメタデータを出力してくれて、かなり便利。
2014-12-15 15:03:10@hkato193 標準カメラでポートレイト撮影した動画はexiftool -eeで Matrix Structure: 0 1 0 -1 0 0 1080 0 1 ってのが出ます。
2014-12-15 15:26:50