友人と一緒に.wavファイルを復元するときに興味深い経験がありました。 痛みを伴うプロセスを説明することにしました。突然誰かが役に立つでしょう。
背景
レコーダーがフリーズする/またはファイルの保存中にエラーが発生するという悲しい話があります。 したがって、破損したファイルを開こうとすると、次のようなエラーが表示されます 。 形式のデコードに失敗した、形式が正しくない 、 プログラムがファイル形式を認識しなかったなど 。
それを理解しよう
ファイルを開くことができなかったため、Googleを使用することにしました。 .wavファイルをプレーヤーにフィードする方法を理解したかったのです。 たくさんのヒントを見つけました:Raw(raw形式)でダウンロードする、設定を試すなど これらの試みはすべて失敗しました。
私たちはwavが一般的に何であるかを研究することに決め、ヘッダーとその説明に関する情報を見つけました:
16進エディター(wxHexEditor)をインストールし、開いて少なくともタイトルに似たものを見つけようとします。
失敗...何もありませんでした。
保存に成功した新しいレコードを記録することにしました。 エディターでそれを開き、ヘッダーを確認しました。
ヘッダーをコピーして、Beatnファイル(以降、BF)に貼り付けます! プレーヤーでファイルを必死に保存して実行しても、何も機能しません! (私は、本物の男のように、部屋の隅ですすり泣き始めました)
何かを構築する前に、何かを壊す必要があります。
通常のファイルを破壊し、破損したファイルのようなdamagedい画像を取得する方法を見つけることにしました。
図:上に接着されたBF、下に通常の録音。
通常のファイルのhexRedatorで1バイトを削除して保存すると、画像が似たものになることが判明しました。 そして、ゼロを埋めた空のバイトでさえ、バイトを返すと、すべてが正常になります。
bashスクリプトを書く
上図のように、通常の画像を取得するために、ファイルをバイト単位で削除して保存することにしました。 2つのファイルを作成しました。1つはヘッダーのみ、もう1つは破損したファイルです(1メガバイト弱にトリミングした後)。
ファイルから1バイトを削除し、ヘッダーと一緒に貼り付けて、シリアル番号で保存する小さなスクリプトを作成しました。
#!/bin/bash for i in {1..1000} do cat header.wav > "./wav/$i.wav" tail -c +$i raw.wav >> "./wav/$i.wav" done
スクリプトを実行し、スツールの端で恐怖を抱いて、結果を待っています。 残念ながら、これらのファイルを手動で表示する必要がありましたが、別の方法でそれを改善する方法がわかりませんでした。 彼らは250個のファイルを大胆に投げ、トラックを調べました。
537ファイルで探しているものが見つかったため、長くスクロールする必要はありませんでした。
小規模の場合はそのままです。 停止したエディターのハッシュでこのファイルを確認します。 エディターでBFを開き、ヘッダーの後に必要なバイト長を削除します。 それだけで、2時間のファイルは通常通り再生されます。
PS
ほとんどの場合、これは簡単にできます。 作業を容易にする方法、または何らかの方法で最適化する方法を知っている人は、この「ガイド」に追加します。
ご清聴ありがとうございました。