QuickTime Playerの新規オーディオ収録で失敗したm4aファイルの救済
QuickTime Playerには、ビデオやオーディオの再生機能だけではなく、録音機能もあります。今回は、収録途中で失敗したm4aファイルを救済した記事です。
→ で録音していたのですが、途中でMacの操作ができなくなってしまいました。他のMacから共有フォルダは見えたので、収録途中のファイルを取り出す事はできました。
収録途中のファイルは、次のところにあります。
$HOME/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Autosave Information/保存されていない QuickTime Player 書類.qtpxcomposition/オーディオ収録.m4a
「オーディオ収録.m4a」と言う名前だと扱いにくいので、以下、"audio_ng.m4a"として説明します。
でも、せっかく見つけたファイルの再生はできませんでした。QuickTime Player、Audacity、VLCなどを試してみましたが、再生できません。Linuxに持って行って、ffmpegで開く事を試みましたが、次のエラーで開く事ができません。
$ ffmpeg -i audio_ng.m4a audio_out.m4a [mov,mp4,m4a,3gp,3g2,mj2 @ 0x9e4e240] moov atom not found audio_ng.m4a: Invalid data found when processing input
“moov atom not found"のキーワードで検索すると、山ほど検索結果が出てきますが、救済方法にたどり着けません。
そんな中、見つけたのが次のページです。
この記載によると、次の方法で救済できる様です。
$ dd ibs=1 skip=44 if=audio_ng.m4a of=audio_ng_raw.aac $ faad -a audio_ng_adts.aac audio_ng_raw.aac
本記事では、ffmpegとfaadは、Ubuntu 12.04を使っています。ffmpegとfaadは、標準では入っていないと思います。次の方法でインストールします。
$ sudo apt-get install ffmpeg $ sudo apt-get install faad
そして、上記で抽出した、audio_raw.aacに対して実行してみました。
$ faad -a audio_ng_raw_adts.aac audio_ng_raw.aac Error: Maximum number of bitstream elements exceeded
エラーです。このエラーメッセージを元に検索しましたが、良い方法は見つけられませんでした。
とにかく、生のaacデータを取り出して、ATDSと言うデータを追加すれば良さそうなのですが。
検索最中に、次のウェブサイトを見つけました。このページのツールで、「修復可能」と言う事はわかったのですが、救済は有料で、$100以上かかってしまいます。
他、いろいろ検索してみたのですが、良い方法を見つけられませんでした。そんな中、偶然次のページを発見しました。ありがとうございます。
これを読むと、"mdat"と言う文字列の次のデータからが、aac本体だそうな。
ところが、"audio_ng.m4a"を調べてみても、"mdat"と言う文字列はありません。う〜ん。
当然ですが、正常終了した"audio_ok.m4a"だと、"mdat"と言う文字列を発見できます。そして、この"audio_ok.m4a"と"audio_ng.m4a"を、よ〜く比較してみると、決定的な事がわかりました。
そうして、無事、aac本体を取り出す事ができました。そのaacファイルに対して、faadを実行すると、何やら変換が始まりました。
$ dd ibs=1 skip=???? if=audio_ng.m4a of=audio_ng2_raw.aac $ faad -a audio_ng2_raw_adts.aac audio_ng2_raw.aac *********** Ahead Software MPEG-4 AAC Decoder V2.7 ****************** Build: Oct 15 2011 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. ************************************************************************** audio_ng2_raw.aac file info: RAW --------------------- | Config: 2 Ch | --------------------- | Ch | Position | --------------------- | 00 | Left front | | 01 | Right front | --------------------- Writing output MPEG-4 AAC ADTS file. Decoding audio_ng2_raw.aac took: 0.08 sec. 0.00x real-time.
この出来上がった"audio_ng2_raw_adts.aac"は、無事Macで再生できました。また、ffmpegで、m4aやmp3に変換する事もできました。
結局、修復するのに、一週間かかりました。$100以上の仕事を、0円でこなしました。
あまりに苦労したので、わざと肝心な所を書いていません。ですが、勘の鋭い方なら、上記の内容で、やり方がわかるでしょう。
まあ、パズルみたいな物なので、挑戦してみて下さい。
市販ソフトもありますね。復旧できるかどうかわかりませんが、デモ版もある様なので、試してみては?
[amazonjs asin="B002VMX8YK" locale="JP"] [amazonjs asin="B009O1RSWE" locale="JP"]
ディスカッション
コメント一覧
まだ、コメントがありません