<ファイルの修復は2024年現在も引き受けています>
 
※自分で修復をされたい方は、こちらの記事もご参照ください。
 
※当方で修復作業を引き受けさせて頂くことも可能です。
こちらのフォームからご連絡をお願いいたします。

以前、約3時間に渡る重要な会議の内容を iPhone のアプリである "PCM録音" という録音ソフトで録音した。

PCM録音 Lite
https://itunes.apple.com/jp/app/pcm-lu-yin-lite/id439572045?mt=8

しかし、後でそのファイルを開こうとすると、再生時間が0秒になっており、再生ができなかった。
パソコンに移してみると、ファイルのサイズは何MBかあるので、音声データは残っているが、ヘッダー等が破損してしまっているために再生ができないのではないかと推測した。
超重要な会議の記録であったので、まさしく命がけで修復に取り組んだ。
今日は、このファイルの修復を試みた際の記録を公開しようと思う。

 
まず、Windows 用のバイナリエディタとして有名な Stirling を用いて、壊れたファイルである 20111221_091911.m4a を開いてみた。
 
Stirling - 使いやすさと高機能を両立した最強の新・定番バイナリエディタ
すると "free" box の部分にボックスのサイズが入っておらず、mdat (音声データ) のオフセットが分からない状態になっていた。
そこで、同じ 64kbps で記録された別のファイルを参考に、"free" ボックスのサイズを 0xdfdc と推定した。
つまり、0xdff8 から "mdat" box が始まっているものと推測した。
"mdat" box もボックスのサイズとタイプが書かれておらず、"PCM録音" が途中で異常終了したために書き込めない状態に陥ったものと推測した。
おそらく 0xe000 から aac データ始まっていると推測したので、0xe000 より前の部分を削除したファイルを Stirling を使って作成した。

追記: バイナリエディターでファイルを開き、mdat という文字列を検索して、その文字列の次の部分からのデータを別ファイル 1.m4a として保存してもいいです。
 
次に、以下のサイトから AAC decoders (faad.exe) をダウンロードした。
 
そして、コマンドラインからファイル名を引数として以下のように実行すると、見事に wav ファイル(1.wav)に変換することに成功した。

faad 1m4a
 
上記のコマンドは、自動的に aac データの解析を行ってくれるらしい。
次に同じサイトにあるエンコーダー(faac.exe)をダウンロードし、以下のコマンドによって m4a ファイルを作成した。
 
faac.exe -w 1.wav -o 2.m4a -b 64

追記: 上記の -b 64 の部分は 64kbps でエンコードすることを示しますが、音質が良くない場合は、-b 128 もしくは -b 160 とすることで、ファイルサイズは増えますが、音質が改善する場合があります。
 
こうして、修復は見事に成功したのであった。
ほっと胸を撫で下ろした瞬間であった。
 
---- 参考データ ----
 
正常なファイル 20121020_162627.m4a
 
バイナリ情報
001c dfdc "free"
DFF8 02e5c4ca "mdat"
2E6A4C2 10b511 "moov"
 mvhd
  timescale ac44 (44100)
  duration 0ff90000 (267976704) = 6076s (101m16s)
2F759D3 (EOF)
 
AAC ヘッダー情報
General
Complete name                    : C:¥Users¥test¥Downloads¥Bz162¥20121020_162627.m4a
Format                           : MPEG-4
Format profile                   : Apple audio with iTunes info
Codec ID                         : M4A 
File size                        : 168 MiB
Duration                         : 5h 58mn
Overall bit rate                 : 65.5 Kbps
Encoded date                     : UTC 1970-11-27 06:08:11
Tagged date                      : UTC 1970-11-27 06:08:11
 
Audio
ID                               : 1
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format profile                   : LC
Codec ID                         : 40
Duration                         : 5h 58mn
Bit rate mode                    : Constant
Bit rate                         : 64.0 Kbps
Channel(s)                       : 1 channel
Channel positions                : Front: C
Sampling rate                    : 44.1 KHz
Compression mode                 : Lossy
Stream size                      : 164 MiB (98%)
Language                         : English
Encoded date                     : UTC 1970-11-27 06:08:11
Tagged date                      : UTC 1970-11-27 06:08:11
 
---
 
修復によって再作成したファイル 2.m4a
 
AAC ヘッダー情報
General
Complete name                    : C:¥Users¥test¥Downloads¥Bz162¥2.m4a
Format                           : MPEG-4
Format profile                   : Base Media / Version 2
Codec ID                         : mp42
File size                        : 60.3 MiB
Duration                         : 2h 50mn
Overall bit rate                 : 49.5 Kbps
Encoded date                     : UTC 2011-12-23 14:20:52
Tagged date                      : UTC 2011-12-23 14:33:13
Writing application              : FAAC 1.28
 
Audio
ID                               : 1
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format profile                   : LC
Codec ID                         : 40
Duration                         : 2h 50mn
Bit rate mode                    : Variable
Bit rate                         : 48.0 Kbps
Maximum bit rate                 : 56.2 Kbps
Channel(s)                       : 2 channels
Channel positions                : Front: L R
Sampling rate                    : 44.1 KHz
Compression mode                 : Lossy
Stream size                      : 58.6 MiB (97%)
Language                         : English
Encoded date                     : UTC 2011-12-23 14:20:52
Tagged date                      : UTC 2011-12-23 14:33:13


追記1:
ファイル破損の現象は、Apple純正のボイスメモでも発生する事があるようです。
いろいろな破損データを見させて頂きましたが、この記事に書いた以外のヘッダーの壊れ方が発生する場合もあるようです。
もし、お手持ちの m4a ファイルが壊れてしまい、そのデータを復旧させたいというご要望があれば、お気軽にご連絡ください。
機密保持には万全を期させて頂きます。

追記2:
アメブロのメッセージ機能では、メールアドレスや電話番号を記載して送っても、ブロックされてしまいます。
まずは、修復希望の旨を連絡してくだされば、折り返し、連絡方法を記述して返信させて頂きます。
アメブロに登録していない方は、コメント欄でご連絡くださるか(メールアドレスを直接記載するのは、スパムメールが来るようになるのでお勧めしませんが、捨てアドレスを作成してから、記述して頂いてもいいかもしれません)、アメブロ会員に登録してからメッセージ機能でご連絡くださればと思います。

もしくは、こちらのフォームからご連絡ください。

※ この記事の内容を分かりやすく書き直してみました。
こちらの記事も合わせてお読みください 
-> 再生できないiPhoneのボイスメモの修復方法