iPadで録音した音声ファイルが壊れていたのでMACで修復した

iPadで録音した音声ファイルが壊れていたのでMACで修復した

とあるiPadアプリで録音した音声ファイルが壊れていて再生出来なかったので修復しました
ある程度のファイルサイズはあるのでメタデータだけ壊れていて音声データは生きているという前提で考えました。

検証環境

Mac OS X El Capitan 10.11.5(15F34)
Homebrew 0.9.9
0xED 1.1.3 (95)

いろいろ調べたのですが、以下の2つの方法が見つかりました

1.VLC Playerの修復機能で修復
2.メタデータを消して音声部分を抜き出す

1.のVLCはメタデータが壊れているからかうまくいかなかったので2で修正することにしました。
必要なソフトはhomebrewでインストールします。

必要なソフトのインストール

faadのインストール

% brew install faad2

faacのインストール

% brew install faac

壊れたメタデータを削除する

壊れたメタデータを削除するためにバイナリエディタを用意しました。
過去にWindowsを使っていた頃はstirlingというソフトを愛用していましたが
いまはMac使いなのでMacのバイナリエディタの0xEDをダウンロードしてきてインストールしました。

http://www.suavetech.com/0xed/

通常では以下のようにmdatというデータがあるのでそこまでを消せばよいです。

スクリーンショット 2016-06-13 17.10.37

しかし、今回のデータはmdatというのが見つかりませんでした。

スクリーンショット 2016-06-13 17.11.42

どこまでかメタデータか正確に判断が出来ないので、正しいデータと比較してみて、20 66の前までがメタデータであると仮定して削除しました。

% faad soundfile.m4a                                                                                             
 *********** Ahead Software MPEG-4 AAC Decoder V2.7 ******************

 Build: Sep 22 2015
 Copyright 2002-2004: Ahead Software AG
 http://www.audiocoding.com
 Floating point version

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License.

 **************************************************************************

soundfile.m4a file info:
RAW

  ---------------------
 | Config:  2 Ch       |
  ---------------------
 | Ch |    Position    |
  ---------------------
 | 00 | Left front     |
 | 01 | Right front    |
  ---------------------

無事変換出来たようなので、再生してみたところ、再生できました。

あとはfaacでwavからm4aに変換して完了です。

% faac -w soundfile.wav -o fix.m4a -b 64                                                                         [~/Downloads]
Freeware Advanced Audio Coder
FAAC 1.28

Average bitrate: 64 kbps
Quantization quality: 100
Bandwidth: 5604 Hz
Object type: Low Complexity(MPEG-4) + M/S
Container format: MPEG-4 File Format (MP4)
Encoding 28_30_copy.wav to fix.m4a
   frame          | bitrate | elapsed/estim | play/CPU | ETA
10068/10068 (100%)|   45.3  |    2.9/2.9    |   80.17x | 0.0

fix.m4aが出力され、正しく再生できることを確認できました。

以下のページを参考にさせてもらいました。

http://ameblo.jp/nekocat2/entry-11515276030.html

TAG

  • このエントリーをはてなブックマークに追加
金子 将範
エンジニア 金子 将範 rubyist

新しいことや難しい課題に挑戦することにやりがいを感じ、安定やぬるい事は退屈だと感じます。 考えるより先に手が動く、肉体派エンジニアで座右の銘は諸行無常。 大事なのは感性、プログラミングにおいても感覚で理解し、感覚で書きます。