C # Распакуйте MP3 в текст - PullRequest
       30

C # Распакуйте MP3 в текст

0 голосов
/ 21 сентября 2018

Я создаю инструмент, который извлекает данные из двоичных файлов базы данных.У меня это работает с несжатыми данными фиксированной ширины, но следующий файл, который я попробовал, использует метод сжатия.

Согласно TRiD (http://mark0.net/soft-trid-e.html) файл на 100% соответствует MP3, для чегоСтоит, вот первые несколько байтов файла:

FF FF AD 00 C0 7E AA 00 21 C0 AD 00 AE 02 00 00 00 00 00 00 0C 86 00 
00 52 81 00 00 00 00 00 00 CC 01 00 00 42 54 47 42 91 00 00 00 57 01 00 40 
32 00 30 00 34 12 EE 1F 00 00 01 00 00 02 01 04 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 1C 73 5A 00 00 49 02 FF 00 
02 00 AF 89 00 00 00 00 00 00 6B 04 00 00 56 1C 73 5A B3 06 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00

Мое приложение обычно берет блок двоичных данных, который может находиться в любом месте файла, и сохраняет его в небольшой файл, которыйлегко выполнять быстрые манипуляции, пока все данные не выровняются.

Если я хочу сделать это со сжатым файлом, нужно ли сначала распаковывать весь файл, а затем сохранять только часть, или я могускажи ему взять первые 30 КБ файла, распаковать то, что он нашел, и записать это в файл? Я знаю, что будет много дополнительных символов Unicode / Control, но пока строковые значения можно распечатать, я выясню,остальные.

public static FileStream stream = new FileStream(@"DB.dat", FileMode.Open, FileAccess.Read);
public static FileStream shortFile = null;
int limit = 30000;

public MainWindow()
{
    byte[] block = new byte[limit];

    using (FileStream fs = File.Create("tempfile.dat"))
    {
        stream.Position = 0;
        stream.Read(block, 0, limit);

        fs.Write(block, 0, block.Length);

    }

    InitializeComponent();
}

Редактировать: добавление идентификатора информации для образца файла http://64.72.211.216/ZIPCODE.dat

TrID/32 - File Identifier v2.24 - (C) 2003-16 By M.Pontello
Definitions found:  10674
Analyzing...

Collecting data from file: ZIPCODE.dat
100.0% (.MP3) MP3 audio (1000/1)
         Mime type  : audio/mpeg3
       Definition   : audio-mp3.trid.xml
         Files      : 34
       Author       : Marco Pontello
         E-Mail     : marcopon@gmail.com
         Home Page  : http://mark0.net
...