Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Размер mp3-файла, Как его узнать, исходя из структуры 
:(
    Опции темы
fridkaratel
Дата 7.5.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Как узнать или подсчитать размер mp3-файла, исходя из данных, которые находятся в самом этом mp3-файле?
PM   Вверх
LavYaAll
Дата 12.5.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 62
Регистрация: 1.5.2008

Репутация: нет
Всего: 1



Код

// Можно размер файла получить этой функцией:
DWORD GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh);

// Если размер уж очень велик(больше DWORD), то надо использовать:
BOOL GetFileSizeEx(HANDLE hFile, PLARGE_INTEGER lpFileSize);

// Если надо получить размер сжатого файла, то:
DWORD GetCompressedFileSize(LPCTSTR lpFileName, LPDWORD lpFileSizeHigh);

PM   Вверх
fridkaratel
Дата 13.5.2008, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



smile

Я это знаю...

Это не то... Суть в чем - мне надо найти в файле размером 300-500 Мб все mp3-файлы, чтобы их оттуда вытащить (напр. игра GTA)... А для этого надо найти как-то структуру этого mp3 и узнать размер файла, а потом уже сохранить выдернутый файл на диск...
PM   Вверх
ksili
Дата 13.5.2008, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Как и у почти всякого формата, к mp3 наверняка есть шапка, в которой есть различная инфа. Просто разберись с форматом шапки и всё, размер файла там наверняка будет.

Это сообщение отредактировал(а) ksili - 13.5.2008, 06:45


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
LavYaAll
Дата 13.5.2008, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 62
Регистрация: 1.5.2008

Репутация: нет
Всего: 1



Хмм, я понял. Вот почитай тут, может поможет.
Заголовок MP3.
Вот еще.



user posted image
Цитата

An MP3 file is made up of multiple MP3 frames, which consist of the MP3 header and the MP3 data. This sequence of frames is called an Elementary stream. Frames are not independent items ("byte reservoir") and therefore cannot be extracted on arbitrary frame boundaries. The MP3 data is the actual audio payload. The diagram shows that the MP3 header consists of a sync word, which is used to identify the beginning of a valid frame.


Это сообщение отредактировал(а) LavYaAll - 13.5.2008, 08:49
PM   Вверх
LavYaAll
Дата 13.5.2008, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 62
Регистрация: 1.5.2008

Репутация: нет
Всего: 1



Как я понял MP3 состоит из фреймов. Идет некая последовательность, заголовок1 - данные1; заголовок2 - данные2; ...; заголовокN - данныеN; В заголовке хранится информация об идущих далее данных. Сами данные это и есть то что "проигрывается". А потом идет следующий заголовок, хранящий инфу о следующих данных.
Цитата

The diagram shows that the MP3 header consists of a sync word, which is used to identify the beginning of a valid frame. This is followed by a bit indicating that this is the MPEG standard 

А sync word идентифицирует начало следующего фрейма. Почитай данные по вышеприведенным ссылкам, особенно то что написано в Wikipedia.
PM   Вверх
fridkaratel
Дата 30.5.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Сэнкс! ;)

Я читал и на википедии, и на других сайтах, в том числе и на официальном... Но там все так намудрено...

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

Поэтому думал найти выход полегче и попроще... Как бы через некую формулу...

PS: Вот нет чтобы сделать как у формата RIFF (WAV, AVI, MID) - все указано одним числом в заголовке - и все! Нет, надо мудрить... smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.