DJIドローン動画のSRTファイルからGPS・高度・方位を取り出す方法

DJIドローン動画のSRT字幕からGPS・高度・方位を取り出し、地図に飛行軌跡を表示する概念図

動画には「字幕」として位置情報が隠れている

DJIをはじめとする多くのドローンは、動画を撮影するとMP4ファイルと並んで「SRTファイル」を一緒に書き出します。拡張子が.SRTのこのファイルは、見た目はただの字幕ファイルですが、中には動画のフレームに合わせて高頻度に記録されたGPS座標・高度・速度・カメラの向き(ジンバル方位)が詰まっています。いわば、動画に同期した飛行ログそのものです。

静止画(写真)であればEXIF情報に撮影位置が埋め込まれますが、動画は1枚の画像ではないため、位置情報はEXIFではなくこのSRTという別ファイルに時系列で記録されます。この存在を知らずにMP4だけを保存し、SRTを捨ててしまうと、「どこを飛んで撮ったのか」という貴重なデータを失うことになります。

この記事では、SRTファイルの中身の読み方、撮影時に記録をONにする設定、そして動画を再生しながら地図上に軌跡を表示し、CSVやKMLとして書き出すまでの流れを解説します。

SRTファイルとは

SRT(SubRip Subtitle)は、もともと動画に字幕を重ねて表示するためのテキストフォーマットです。「何秒から何秒までに、どの文字を表示するか」を順番に並べただけの単純な構造で、メモ帳などのテキストエディタでそのまま開けます。

DJIのドローンは、この字幕の仕組みを応用して、各時刻に表示する「字幕」としてテレメトリ(飛行データ)を書き込んでいます。つまりSRTを動画プレイヤーで字幕表示すると、画面の下に撮影中の緯度・経度・高度などが流れていく、というわけです。テキストなので特別なソフトがなくても中身を確認でき、プログラムからも扱いやすいのが特徴です。

動画ファイルとの関係は機種・設定によって2通りあります。

どちらの方式でも記録されている情報そのものは同じですが、扱い方が変わります。外部SRTは中身をテキストとしてすぐ確認・編集できる反面、MP4と別ファイルなのでコピーし忘れると失われます。一方、内蔵字幕はMP4と一体なので紛失しにくい代わりに、ファイルを見ただけでは入っているか分からず、字幕として再生するか専用の手順で取り出す必要があります

「SRTファイルが見当たらないが、位置情報は記録されているはず」というときは、MP4の中に字幕として埋め込まれている可能性が高いです。次のMP4に内蔵された字幕を確認・抽出するで、その確認方法を解説します。

SRTに記録されるテレメトリ情報

SRTファイルを開くと、次のように「通し番号 → 表示時間 → データ本体」というブロックが、撮影時間の長さだけ延々と続いています。これはDJI Mavic 3で記録されたSRTの一例です。

1 00:00:00,000 --> 00:00:00,033 <font size="28">FrameCnt: 1, DiffTime: 33ms 2026-06-06 10:24:18.521 [iso: 100] [shutter: 1/500.0] [fnum: 2.8] [ev: 0] [focal_len: 24.00] [latitude: 35.658600] [longitude: 139.745400] [rel_alt: 120.500 abs_alt: 145.320] [gb_yaw: 127.5 gb_pitch: -89.9 gb_roll: 0.0]</font> 2 00:00:00,033 --> 00:00:00,066 <font size="28">FrameCnt: 2, DiffTime: 33ms 2026-06-06 10:24:18.554 [iso: 100] [shutter: 1/500.0] [fnum: 2.8] [ev: 0] [focal_len: 24.00] [latitude: 35.658603] [longitude: 139.745408] [rel_alt: 120.530 abs_alt: 145.350] [gb_yaw: 128.1 gb_pitch: -89.9 gb_roll: 0.0]</font>

この中で測量・GIS的に価値が高いのは、緯度・経度・高度・カメラ方位です。主なフィールドの意味を整理します。

2種類の高度に注意。rel_alt(相対高度)は離陸地点を0とした高さ、abs_alt(絶対高度)は海抜です。点検対象との比高を見たいなら相対高度、地形と重ねたいなら絶対高度、と目的で使い分けます。なお絶対高度は気圧高度計ベースのため、標高として厳密ではありません。

DJIのSRTフォーマットは機種で違う

やっかいなのは、SRTの書き方がDJIの機種やファームウェアの世代によって微妙に異なることです。上の例は角括弧で囲む新しめの形式ですが、旧機種では次のように丸括弧でまとめて記録するものもあります。

1 00:00:00,000 --> 00:00:01,000 HOME(139.7454,35.6586) 2026.06.06 10:24:18 GPS(139.7454,35.6586,18) BAROMETER:120.5

このタイプで注意したいのは、緯度・経度の並び順が機種によって異なる点です。GPS(経度, 緯度, 衛星数)のように経度が先のこともあれば、緯度が先のこともあります。手作業でCSV化するときに緯度と経度を取り違えると、撮影地点が地球の反対側や海上にプロットされてしまいます(緯度・経度の取り違えは地理データの定番ミスです)。日本国内なら緯度は北緯20〜46°、経度は東経122〜154°の範囲に収まるので、値が大きいほうが経度と覚えておくと取り違えを防げます。

当サイトのドローン動画プレイヤーは、角括弧形式・丸括弧形式の両方や、latitude:表記・GPS(...)表記など複数のパターンを自動判別して読み込むようになっているため、機種ごとの違いを意識せずに扱えます。

MP4に内蔵された字幕を確認・抽出する

前述のとおり、テレメトリは別ファイルの.SRTとして保存されるとは限らず、MP4の中に「字幕トラック」として内蔵されていることがあります。この場合、フォルダにSRTファイルが見当たらなくても、動画ファイルさえあれば位置情報を取り出せます。逆に「SRTが無いから位置情報も無い」と早合点して動画を破棄しないよう、まずは内蔵字幕の有無を確認しましょう。

1. まず同名のSRTファイルがあるか見る

最も簡単な見分け方です。DJI_0001.MP4 と同じフォルダに DJI_0001.SRT があれば外部SRT方式。無ければ内蔵字幕方式の可能性が高い、と当たりを付けられます。Windowsのエクスプローラーで拡張子を表示しておくと確認が楽です。

2. プレイヤーで字幕トラックを確認する(VLCなど)

VLCメディアプレーヤー(無料)でMP4を開き、メニューの「字幕」→「サブトラック」を見ます。ここに選択できる字幕トラックが表示されれば、その動画には字幕が内蔵されています。トラックを選ぶと、映像の下にGPS座標や高度がオーバーレイ表示されるはずです。一覧に字幕が無ければ、内蔵されていない(外部SRTを探す必要がある)と判断できます。

3. MediaInfoでトラック構成を見る

MediaInfo(無料)にMP4をドラッグすると、その動画に含まれるトラックの一覧が表示されます。「テキスト(Text)」という種別のトラックがあれば、それが内蔵字幕です。映像・音声に加えてテキストトラックが並んでいるかどうかで判別できます。

4. ffmpeg / ffprobe で確認・SRTとして抽出する

コマンドに抵抗がなければ、ffmpeg付属のffprobeでトラック構成を確認するのが確実です。Subtitleと表示される行があれば内蔵字幕です。

# トラック構成を確認する ffprobe -hide_banner DJI_0001.MP4 # 出力例(字幕トラックがある場合) # Stream #0:0 ... Video: hevc ... # Stream #0:1 ... Audio: aac ... # Stream #0:2 ... Subtitle: mov_text ... ← これが内蔵字幕 # 内蔵字幕を .SRT ファイルとして抜き出す ffmpeg -i DJI_0001.MP4 -map 0:s:0 DJI_0001.SRT

抽出した.SRTは通常のテキストファイルなので、そのまま中身を確認したり、ドローン動画プレイヤーに読み込んだりできます。内蔵字幕を一度SRTに書き出しておけば、「紛失しにくい」内蔵方式の利点と「中身を確認・編集しやすい」外部方式の利点を両取りできます。

5. ツールに読み込んで判定する

いちばん手軽なのは、実際にツールへ入れてみることです。ドローン動画プレイヤーMP4だけをドラッグ&ドロップして、地図上に現在位置や飛行軌跡が表示されれば、その動画には字幕が内蔵されています。何も表示されなければ、字幕は内蔵されていない(外部SRTを別途読み込む必要がある)と判断できます。

内蔵字幕と外部SRTの両方が揃っている場合、ドローン動画プレイヤーでは外部SRTを読み込めばそちらが使われます。どちらか一方しか手元に無くても、記録されている位置情報は同じです。まずはMP4単体で試し、位置が出なければ同名のSRTを探す、という順で進めると確実です。

撮影時にSRT(字幕)記録をONにする

SRTデータは、撮影時に「字幕記録」設定がONになっていないと生成されません。「動画は撮ったのにSRTがない」という場合、たいていこの設定がオフだったことが原因です。あとから付与することはできないため、フライト前に確認しておきましょう。

DJI Fly / DJI Pilot アプリでの設定

  1. カメラ画面右上の設定(…)からカメラ設定を開く
  2. 「動画字幕」または「Video Caption / Subtitles」の項目を探す
  3. この項目をONにする
  4. あわせて、撮影した素材を持ち帰る際はMP4とSRTをセットでコピーする
SRTは後から作れません。字幕記録がオフのまま撮影した動画には、位置情報は一切残りません。位置情報を使う予定がある現場では、必ず飛行前に設定を確認してください。機種によっては設定名が「字幕」「キャプション」「ビデオサブタイトル」など表記ゆれがあります。

なお、スマートフォンで撮影する場合でも、Open CameraなどGPS付き字幕を出力できるアプリを使えば、同様にSRTで位置情報を記録できます。

SRTデータの活用シーン

1. 飛行記録・撮影範囲の証跡として残す

「いつ・どこを・どの高度で飛んだか」を客観的に示す記録になります。点検業務や行政への報告で、撮影範囲をカバーしたことを示す資料として、軌跡を地図やKMLにして添付できます。

2. 動画内の「気になる箇所」の座標を特定する

動画を見ていて見つけた損傷や異常箇所について、その瞬間のSRTから緯度・経度を読み取れば、現地のどこなのかをピンポイントで特定できます。インフラ点検・災害調査・ソーラーパネルや屋根の確認などで効果的です。

3. カメラ方位(gb_yaw)で「どっちを向いて撮ったか」を記録

ジンバル方位を使えば、被写体の方向まで含めて記録できます。同じ地点でも東を撮ったのか西を撮ったのかが分かるため、構造物の面ごとの記録整理に役立ちます。

4. CSV化して他ソフト・解析に流し込む

SRTを表形式のCSVに変換すれば、Excelでの集計、GISソフトへの取り込み、飛行高度のグラフ化などに展開できます。KMLにすればGoogle EarthやGISで軌跡をそのまま重ねられます。

動画と一緒に地図表示・CSV/KML出力する

SRTはテキストなので中身は確認できますが、数千行のデータを目で追っても飛行の全体像はつかめません。DroneGIS Toolsのドローン動画プレイヤーを使えば、MP4とSRTを読み込むだけで、動画の再生に同期して地図上に現在位置と飛行軌跡をリアルタイム表示できます。

使い方の流れ

  1. ツール画面にMP4とSRT(同名ファイル)をドラッグ&ドロップする
  2. 再生ボタンを押すと、動画の進行に合わせて地図上のマーカーと軌跡が動く
  3. 画面には高度・速度・方位がリアルタイムに数値表示される
  4. 必要に応じて飛行データをCSV / KML形式でエクスポートする

MP4に字幕が内蔵されている場合は、SRTファイルがなくても自動的に位置情報を抽出します。処理はすべてブラウザ内で完結するため、動画ファイルがサーバーにアップロードされることはありません。

写真(静止画)の位置情報を地図に出したい場合は、SRTではなくEXIFを使います。スマホ・ドローン・デジカメの写真をまとめて地図にプロットする方法は写真のEXIF情報で撮影位置を地図に表示する方法で解説しています。

扱う上での注意点