2018/04/07iPhoneで撮影した動画には位置情報(ジオタグ)が記録されています。動画を圧縮(再エンコード)すると位置情報は消えてしまいます。前回はiOS8まででうまくいく方法を見つけました。今回はiOS9移行でも使える方法を見つけ(というか作りだし)ました。まとめiOSの位置情報の仕組み前回は位置情報記録の仕組みについて調査して、[mov→mov]の変換であれば位置情報が維持できましたが、iOS9以降で撮影した動画では位置情報の記録が微妙に変わってしまいました。前回の話↓iPhone/iPadで録画した動画の位置情報:記録方法や書き換え方iPhoneで撮影した動画には位置情報(ジオタグ)が記録されています。その記録内容や方法について調べました。2018/04/072種類の記録GOMプレーヤーで動画のメタデータを見てみると2種類のデータ名で記録されていることが分かりました。再エンコードすれば「ゥxyz」の方が残ってくれたのですが、iOS9以降ではそもそもそちらが記録されていません。なんとかして「com.apple.quicktime.location.ISO6709」の方を残す方法を検討します。こちらの方が情報の優先順位(両方記録されていた場合にどちらの情報を表示するか)が高いので、こっちの方が正当な方法ですしね。必要な部分を手動でコピーする残念ながらffmpegでは位置情報が残りません。それに他のツールでもおそらく同じでしょう。仕方がないので、位置情報を含むメタデータ全体を手動でコピーする方法を考えます。movのファイル構造movやそれを元にしたmp4では、「Atom」と呼ばれるデータ構造になっています。Atomでは先頭から[データの長さ4バイト][データの名前4バイト][データ]の順で並んでいます。「データの長さ」は先頭の8バイトを含むバイト数が、ビッグエンディアンで記録されています。データの名前はASCIIのアルファベット4文字で「ftyp」や「moov」などです。Atomはデータを入れ子にすることができます。「meta」が消えるffmpegでmov→movで再エンコードすると、Atomの「meta」(moovの中に含まれる)要素が消えてしまいます。GPSの情報が記録されている「com.apple.quicktime.location.ISO6709」はmetaの中にあるので、一緒に消えてしまっているわけですね。そこでこんな手順を踏むことにしました。movファイルA(元)をffmpegで好きなサイズに圧縮して、movファイルBを得る。movファイルAのmeta要素の中身を抜き出す。movファイルBのAtom構造に、Aのmeta要素を適切に入れる。Atomのデータ構造自体は単純なので問題なくできそうですが、一つだけ注意点があります。moovより後にデータがあるとうまくいかない再エンコード後のファイルBのAtom構造が、moovよりも後にデータを含むようになっているとどうやらうまくいかないようです。Atom構造の編集ミスかと思って何度かトライしたんですが、うまくいきません。今回はエンコードすること前提なので、エンコード時にmoovが最後に来るようにしておけば問題ありません。faststart」を付けていなければOKです。今回作ったプログラムで確かにGPS情報はコピーされます。GOMプレーヤーでメタデータをみるとちゃんと記録されていますし、Dropbox経由でiPhoneにファイルをダウンロードしたらちゃんとGPSを元にした住所が表示されました。私には意味がありませんでした。私の目的は「iTunesの写真同期でiPhoneに入れた過去の動画ファイルに、位置情報を付加したい」だったからです。残念ながらiTunesの写真同期で入れた動画の位置情報は読み取ってくれませんでした。これでは意味がない!iTunes写真同期に最適な解像度を調査したときもそうでしたが、写真同期機能はファイルをそのままコピーしてくれるわけではないんですね......。iPhone/iPadへの写真同期に最適な解像度・品質・ファイルサイズをキッチリ調査したiPhoneやiPadに写真を同期する場合、写真のサイズはどんなサイズで同期するのが最適なのかキッチリ調査しました。2018/04/07ソースコードiTunes写真同期ではダメでしたが、GPS情報のコピー自体はうまくいったのでご紹介しておきます。いつも通りAutoHotkeyで書きました。CopyMovMetaDataにファイルA,Bのファイルパスを渡すと、Aのmetaを丸ごとBに埋め込みます。moovの後ろにもデータがあります。moovのサイズがファイルサイズをはみ出しています。"UChar")}}まとめiTunes写真同期の挙動に翻弄されてばかりですね。同期がおかしくなったときはこちら↓iPhoneの写真同期がおかしい・空き容量が増えない...設定をリセットしよう!iPhone/iPadの写真同期がおかしい、同期した写真の表示が壊れた、同期を解除したのに空き容量が増えない、などの問題の解決方法です。1LINEで送る関連記事iPhone/iPadで録画した動画の位置情報:記録方法や書き換え方iPhoneで撮影した動画には位置情報(ジオタグ)が記録されています。...脱獄を維持したままガラス割れiPhoneを正規修理した方法iPhoneを落としてガラスが割れました。...iPhoneのモック画像にスクリーンショットを自動ハメコミ合成する方法iPhoneで撮ったスクリーンショットをモックアップ画像に合成する方法です。コメントをキャンセルメールアドレスが公開されることはありません。自動起動されるはずのアプリケーションが立ち上がらない。大きなファイルをコピーするときには、コピーの進捗状況を表示できると便利ですよ。...iPhone/iPadで録画した動画の位置情報:位置情報を保持して圧縮iPhoneで撮影した動画には位置情報(ジオタグ)が記録されています。USBキーボード配列変換アダプター「かえうち」は、私が開発・生産しています。