Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Внизwave в файлах Найти похожие ветки
← →
кекс (2004-02-05 17:57) [0]Значится такая проблема, есть файл, неважно какой, играющий роль банка или библиотеки ресурсов, в нем лежат разные файлы, в том числе и wave, и вот енти wave мне оттуда надо выдернуть, мож кто сможет помочь кодом али чем; пробовал искать по файлу места где написано "RIFF", не получилось, да и тем более, что есть другие riff файлы кроме wave, да и потом не знаю как найти конец вава в этом файле.
← →
Digitman © (2004-02-05 18:46) [1]
> есть файл, неважно какой
т.е. тебе его формат неизвестен ?
какое хоть расширение у него , можно полюбопытствовать ?
> пробовал искать по файлу места где написано "RIFF", не получилось
может, файл скомпрессирован каким-то компрессором ... возможно даже нестандартным ... ты же этого заранее не знаешь, как я полагаю
> не знаю как найти конец вава в этом файле
так ты хоть начало найди ... wav-файл начинается с заголовка, в котором :
- по смещению 0 (dword) : "RIFF"
- по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла
- по смещению 8 (qword) : "WAVEfmt "
думаю, что если это какой-то нестанд.формат контейнера, то он скорей всего оформлен в виде некоей библ-ки и должен обязательно содержать какой-то заголовок, описывающий либо все содержимое контейнера либо указывающий на 1-й элемент односвязного списка, из заголовка и следом идущие данные
← →
кекс (2004-02-05 21:30) [2]какой это файл значения не имеет, смысл в том, чтобы найти заголовок wave файла - это первая проблема, затем найти его конец - вторая проблема, ну и выдрать его оттуда - третья, даже если он сжат - это значения не имеет, он лежит там в виде wave файла, разве что если он не сжат самой библиотекой до неузнаваемости
← →
Digitman © (2004-02-06 08:33) [3]на вопрос о поиске и локализации образа waveфайла в файле-контейнере, если он не сжат ничем, я тебе уже ответил. Исчерпывающая инф-ция для решения задачи.
все карты тебе в руки
← →
кекс (2004-02-06 10:15) [4]даже если я найду его начало, то как мне найти его конец?
← →
Jel © (2004-02-06 10:18) [5]для поисков конца - Смотри формат .WAV
для поисков начала - в упакованом файле это маловероятно без распаковки. И к тому же, откуда уверенность что звук лежит именно в формате WAV? Ты вроде искал его по заголовкам и не нашел.
← →
Digitman © (2004-02-06 12:07) [6]
> кекс (06.02.04 10:15) [4]
> даже если я найду его начало, то как мне найти его конец?
еще раз тебе говорю :
образ стандартного wav-файла начинается с заголовка, в котором :
- по смещению 0 (dword) : "RIFF"
- по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла
- по смещению 8 (qword) : "WAVEfmt "
пусть начало фразы "RIFF" ты обнаружил по абс.смещению 100 от начала файла-контейнера
смотришь, что лежит по абс.смещению 100 + 8 = 108
если там обнаружена фраза "WAVEfmt ", значит по абс.смещению 100 находится именно WAV-образ, а не просто некий RIFF-образ
тогда по абс.смещению 100 + 4 = 104 берешь 4 байта, интерпретируешь их как dword и получаешь значение этого dword"а
пусть оно, к примеру, оказалось равным 1000
теперь можно определить границы и размер wav-образа в файле-контейнере :
начало образа = 100
конец образа = 100 + (1000 + 8) - 1 = 1107
полная длина образа = конец образа - начало образа + 1 = 1107 - 100 + 1 = 1008 байт
это так сложно ?
← →
кекс (2004-02-06 19:16) [7]Спасибо, извини за непоннятливость, я пропустил, фразу: "по смещению 4 (dword): длина файла, начиная со смещения 8 до конца файла" :)
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c