Comment nous avons restauré un fichier .wav endommagé

Une expérience intéressante s'est produite lorsqu'un fichier .wav a été restauré avec un ami. J'ai décidé de décrire notre processus douloureux, tout à coup, quelqu'un sera utile.


Contexte


Il y a des histoires tristes lorsque l'enregistreur se fige / ou donne une erreur lors de l'enregistrement du fichier. Par consĂ©quent, lorsque nous essayons d'ouvrir un fichier endommagĂ©, nous obtenons des erreurs telles que: le format n'a pas pu ĂȘtre dĂ©codĂ©, le format est incorrect ou le programme n'a pas reconnu le format de fichier .


Essayer de comprendre


Comme nous n'avons pas pu ouvrir le fichier, nous avons décidé de google. Nous voulions comprendre comment envoyer le fichier .wav au lecteur. Trouvé un tas de conseils: téléchargez-le en Raw (format brut), jouez avec les paramÚtres, etc. Toutes ces tentatives ont échoué.


Nous avons dĂ©cidĂ© d'Ă©tudier ce qu'est le wav en gĂ©nĂ©ral, avons trouvĂ© les informations sur les en-tĂȘtes et leur description :


représentation schématique du format de fichier wav


Nous installons l'éditeur hexadécimal (wxHexEditor), ouvrons et essayons de trouver au moins quelque chose de similaire au titre.


fichier corrompu sans en-tĂȘte


Échec ... il n'y en avait pas.


Nous avons dĂ©cidĂ© d'enregistrer un nouveau record avec une sauvegarde rĂ©ussie. Nous l'avons ouvert dans l'Ă©diteur et regardons les en-tĂȘtes.


enregistrement normal, aucun titre sélectionné


Copiez les en-tĂȘtes et collez-les dans notre fichier battu (ci-aprĂšs BF)! Enregistrez et exĂ©cutez frĂ©nĂ©tiquement le fichier dans le lecteur, et rien ne fonctionne! (Moi, comme un vrai homme, j'ai commencĂ© Ă  sangloter dans le coin de la piĂšce)


Avant de construire quelque chose, vous devez casser quelque chose.


Nous avons décidé de trouver comment casser un fichier normal et obtenir une image aussi moche qu'un fichier endommagé.


Figure: BF collé sur le dessus, enregistrement normal ci-dessous.


ouvrir deux fichiers en audace


Il s'est avĂ©rĂ© que si vous supprimez 1 octet dans hexRedator dans un fichier normal et enregistrez, l'image devient similaire. Et si vous retournez un octet, mĂȘme vide rempli de zĂ©ros, alors tout devient normal.


Écrire un script bash


Nous avons dĂ©cidĂ© de supprimer et enregistrer le fichier par octet afin d'obtenir une image normale, comme dans la figure ci-dessus. Nous avons crĂ©Ă© 2 fichiers, l'un juste les en-tĂȘtes et l'autre un fichier endommagĂ© (aprĂšs l'avoir coupĂ© un peu moins d'un mĂ©gaoctet).


Nous avons Ă©crit un petit script qui supprime un octet du fichier et le colle avec l'en-tĂȘte, puis l'enregistre avec un numĂ©ro de sĂ©rie.


#!/bin/bash for i in {1..1000} do cat header.wav > "./wav/$i.wav" tail -c +$i raw.wav >> "./wav/$i.wav" done 

Nous commençons le script et avec appréhension, sur le bord du tabouret, nous attendons le résultat. Malheureusement, nous avons dû visualiser ces fichiers manuellement, mais nous ne savions pas comment faire mieux d'une autre maniÚre. Ils ont jeté 250 fichiers en audace et regardé à travers les pistes:


un tas de fichiers cassés


Il n'a pas été nécessaire de faire défiler longtemps, car sur le fichier 537 nous avons trouvé ce que nous cherchions:


le voici, 537 fichier avec un son normal


Cela reste le cas pour les petits. Nous regardons ce fichier dans le hachage de l'Ă©diteur oĂč il s'est arrĂȘtĂ©. Ouvrez le BF dans l'Ă©diteur et supprimez la longueur d'octet souhaitĂ©e aprĂšs l'en-tĂȘte. C'est tout, un fichier de deux heures joue normalement.


PS


TrĂšs probablement, cela pourrait ĂȘtre rendu plus facile. Qui sait comment faciliter le travail ou l'optimiser d'une maniĂšre ou d'une autre, Ă©crivez, je vais ajouter Ă  ce "guide".


Merci Ă  tous pour votre attention.

Source: https://habr.com/ru/post/fr433178/


All Articles