破損した GoPro HERO12 Black の動画を修復する

HERO12 のファイルが黒い画面やエラーで開くとき、それはほとんどの場合、カメラが最後まで書き込めなかったクリップであって、失われた映像ではありません。フレームは通常そのままカードに残っており、それを取り戻すのに端末の外へ持ち出す必要はありません。

ファイルがデバイスから出ることはありません — 修復はブラウザ内で実行されます。アップロードは 0 バイトです。

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Drop a file here or browseTap to choose a file

ZIP · Office · PDF · video · JPG · PNG · RAR/7z · SQLite — repaired right here in your browser. Nothing is uploaded

0 bytes uploadedFree: 3 repairs/day — up to 500 MB video, 100 MB docs & archives, 50 MB photos. Free download. Single repair €5.90. No account required.

今すぐ修復

  1. ファイルをドロップ
  2. 修復はローカルで実行
  3. 結果をダウンロード

GoPro HERO12 Black は標準的な MP4 コンテナに記録します。高性能モード、つまり 5.3K60、4K120、2.7K240 は 10 bit の HEVC (H.265、コーデックタグ hvc1) で符号化され、GX010001.MP4 という名前のファイルとして保存されます。H.264 に切り替わるのは低解像度モードだけで、その場合カメラは GH… と名付けます。クリップが開かないとき、H.265 または H.264 のデータは通常そのまま残っています。足りないのは、プレーヤーがそれを読み取るために必要な moov インデックスです。上のエリアにファイルをドロップすると、ツールはまさにその点をブラウザ内で確認し、映像が復元できる場合はコンテナを再構築します。

なぜ HERO12 の最後のクリップこそが壊れるのか

MP4 がインデックス、つまり各フレームをバイトオフセットに対応づける moov アトムを書き込むのは、クリップが最終処理されたときだけです。GoPro は録画中に音声と映像 (mdat) をカードへ書き出し続け、Stop を押した瞬間にその上へ moov を刻みます。その刻印が保存される前にカメラの電源を断つものは、何であれ、本物の映像で満たされていながらそこへの地図を欠いたファイルを残します。

撮影の途中でバッテリーが切れる。 HERO12 のバッテリーは小さく、HEVC モードは電力を大量に消費します。バッテリーが空になると書き込みは即座に止まります。熱による自動停止。 暑い環境で 5.3K60 や 4K120 を撮り続けると、HERO12 は過熱して停止します。この世代でよく知られた挙動です。録画ランプが消える前にカードが抜かれたり緩んだりすることもあります。いずれの場合も結果は同じで、プレーヤーが破損・再生不可、あるいは単なる黒いフレームとして扱う、大きな .MP4 が残ります。

正常でない停止のあと次に電源を入れると、HERO12 自身が SD カードの修復 / SOS の案内を表示し、最後のファイルを自力で直そうとすることがよくあります。そのカメラ内の処理が成功すれば、私たちの出番はありません。失敗したとき、あるいはカードから再生できないファイルが残ったときは、次の一手がコンテナの再構築です。

チャプター、HEVC、そして参照用クリップ

GoPro は長い録画をチャプターに分割し、一度の撮影がカードのファイルごとのサイズ上限を超えないようにします。チャプター番号は真ん中の 2 桁です。GX010349、GX020349、GX030349 は同じセッションのチャプター 1、2、3 です。それぞれの隣には、小さな .LRV (カメラがプレビューに使う低解像度のプロキシ) と .THM のサムネイルが見えますが、それらはあなたの映像ではないので無視してかまいません。チャプター分割の利点は、中断されたセッションでもたいてい前のチャプターがいくつも完全な形で残り、壊れるのは最後の 1 つだけだという点です。

その隣にある無事なチャプターこそ、再構築が求めているものです。moov が失われている場合でも、残った mdat をスキャンし、カメラが書き込んだはずのサンプルテーブルを作り直すことで再構築できます。そして同じモードで撮影した同じ HERO12 の正常なクリップは、壊れたファイルに欠けている正確な HEVC の設定 (SPS/PPS/VPS のパラメータセット、解像度、フレームのタイミング) を備えているため、再構築は当て推量ではなく忠実なものになります。参照用ファイルが求められるのは、ファイルに本当にそれが必要な場合だけです。

「再生できない」がいつも破損とは限らない

ファイルが壊れていると決めつける前に、切り分けておく価値があります。HERO12 はほぼすべての本格的なモードで既定として 10 bit の HEVC を使うため、古い編集ソフト、スマートフォン、HEVC デコーダーの入っていない Windows 環境は、まったく正常な HERO12 のファイルを単に再生できないだけ、ということがあります。同じクリップが VLC や GoPro Quik アプリでは問題なく再生できるのに、いつもの編集ソフトでだけ再生できないなら、そのファイルは無傷です。破損ではなくコーデックの不足であり、修復は必要ありません。このツールはあなたのシステムにコーデックを追加するものではなく、壊れたコンテナを再構築するものです。

もう一点、HERO12 は GPS レシーバーを完全に廃止したモデルだという点にも触れておきます。以前の HERO と違って失われる GPS トラックはありませんが、カメラは今も加速度センサーとジャイロのテレメトリを GPMF データストリームに埋め込んでいます。残ったデータを軸にコンテナが再構築されるとき、書き込まれていた埋め込みトラックも一緒に復元されます。カメラがそもそも書き込まなかった末尾は、単に復元しようにもそこに存在しません。

修復できるものとできないもの

修復できる

  • バッテリー切れやカメラの過熱の直前だった最後のチャプター (未完了の MP4、moov なし)
  • カードからコピーしたのに、どのプレーヤーでも再生できない HEVC (GX…) または H.264 (GH…) のクリップ
  • コンテナの破損: インデックスの破損、誤ったオフセット、不正なサンプルのタイミング
  • 映像データ自体は残っているのに、カメラ内蔵の SD カード修復があきらめてしまったファイル

修復できない

  • 故障または偽物の microSD カードによって物理的に失われた映像 (まずカードを復旧してから修復してください)
  • カードがループ録画で巡回したり再フォーマットされたりしたあとに上書きされたクリップ。そのデータはもうありません
  • プレーヤーに H.265 デコーダーがないためにだけ失敗する、正常な HEVC ファイル (それは破損ではなくコーデックの不足です)
  • 0 バイト、またはほぼすべてがゼロとして読み取られるファイル

修復が失敗した場合、その理由(データの欠落か構造の破損か)をお伝えします。失敗した修復に料金が請求されることはありません。

よくある質問

HERO12 のクリップは巨大なのに黒い画面しか映りません。映像は失われたのですか?

たいていは失われていません。大きなファイルが黒く再生される場合、ほとんどは、フレームで満たされた mdat は書き込まれたのに、末尾の moov インデックスが書き込まれなかったことを意味します。コンテナを再構築するとそれらのフレームが再びマッピングされ、たいてい映像は戻ってきます。

GoPro が SD カードを修復していると表示したのに、それでもクリップが開きません。どうすれば?

カメラ内の SOS 処理は中断されたファイルの多くを直しますが、すべてではありません。それでも再生できないファイルが残ったら、パソコンにコピーして、ここでコンテナを再構築してください。同じ欠けたインデックスに対する、独立した 2 回目の試みになります。

自分のクリップを直すのに、もう 1 つ GoPro のクリップが必要ですか?

必要なのは一部の場合だけです。インデックスをファイル単体から再構築できるなら、何も求められません。できない場合は、同じ解像度・フレームレートで撮影した同じ HERO12 の正常なクリップが、忠実な再構築に必要な正確な HEVC の設定を提供します。

私の映像はそちらのサーバーにアップロードされますか?

いいえ。クリップはディスクから読み込まれ、ブラウザのタブ内で再構築されます。何も送信されません。ブラウザの「ネットワーク」(Network) タブを開けば、ファイルのうち 0 バイトしか端末から出ていないことを確認できます。

関連: GoPro の動画をまとめて修復 · GoPro HERO13 の動画を修復 · "moov atom not found"