Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Склеить 2 wavа или 2 mp3.   Найти похожие ветки 

 
plotn   (2005-12-19 14:05) [0]

Добрый день. Возникла проблема - плеер (Cowon G3), имеет лимит в 450 файлов. А 2 гига забить мп3 файлами чтобы больше было количество чем 450 - как за нефиг делать.

Надо - склеить 2 вава, или 2 мп3, что не принципиально. Хорошо бы пример с использованием bass.dll. Причем желательно еще и промежуток вставить. Полсекунды или секунду. Причем если клеить мп3, я так понимаю что тег будет один на двоих, это тоже решаемо, я выцеплю оба названия из обоих тэгов и слеплю в один тэг.

Вообще - если вдруг кому надо плугин для тоталкомандера, который умеет ogg,wav,mp3,cda,wma -> mp3 велком в мыло. Очень удобно жать файлы прямо в плеер, допустим из 192 в 128 бпс.

В данный момент хотим написать склейку файлов в один (допустим по 2-3 трека в один трек) и подкачку названий из CDDB когда риппуется CD. Остальное итак работает. На lame_enc.dll и bass.dll


 
XProger ©   (2005-12-19 17:13) [1]

Где вопрос?


 
programania ©   (2005-12-19 20:51) [2]

mp3 состоит из независимых фреймов поэтому можно
copy /b 1.mp3+mute.mp3+2.mp3 3.mp3
mute.mp3-файл с тишиной


 
plotn   (2005-12-20 12:56) [3]

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


 
XProger ©   (2005-12-20 16:41) [4]

Раз фреймы независимы, логично будет предположить, что тебе необходимо просто найти и удалить фреймы с тегами ;)


 
wicked ©   (2005-12-21 00:06) [5]

wav файлы склеить не так просто - там есть заголовки и определенная, достаточно сложная структура......... плюс возможны различне форматы - вообще различные, что исключает прямое склеивание даже содержимого data-chunks..... также посоветую не слушать и не читать ламеров, выкладывающих описание формата wav, содержащее одну (!) структуру в начале файла с мутными и непонятными полями типа "здесь всегда 1".... читаем msdn и воздастся нам безглючным кодом......
единственный более-менее легкий способ - это "раскодировать" оба файла в формат PCM (та самая 1 в поле формата структуры WAVEFORMATEX) одной частоты дискретизации и одинаковых по количеству каналов (моно или стерео), а тогда уже склеивать и кодировать в один какой-то формат, обычно mp3, номер кодека 0x88 вроде, при этом обязательно строго заполнить дополнительные поля WAVEFORMATEX - это очень важно, так как ACM декодер mp3 достаточно глуп и сможет не раскодировать очевидные данные..... место, с которого посоветую начать - http://david.weekly.org/code/mp3acm.html
ошибки там есть, но как пример кода использовать можно вполне....

с mp3 проще, но не намного...... ожидается, что все фреймы в файле будут иметь одинаковые частоту дискретизации, layer версию (что собственно, отличает mp3 от, скажем, mp2), версию MPEG, способ стереокодирования и еще пару параметров (не помню ;)).... поэтому, если файлы будут иметь различные эти вот параметры, то даже не ручаюсь, что декодер будет с такими данными делать...... скорей всего, мусор выдавать будет...... так что склеивать такие файлы можно только при уверенности, что обязательные параметры совпадают......
с тегами в mp3 проще........ id3v1 легко определить - это последние 128 байт в файле, которые обязательно начинаются с символов "TAG".... поэтому, делаем seek -128 байт от конца, читаем 3 байта, и смотрим, не равны ли они "T", "A" и "G"..... равны - откусываем последние 128 байт и всё, id3v1 тега у нас нет....
id3v2 сложнее, но не намного.... ничего конкретного у нем сказать не могу, за меня лучше расскажет сайт http://www.id3.org



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
15-1145902376
Тимур
2006-04-24 22:12
2006.05.21
aнализaтор кода


3-1143109479
yaral
2006-03-23 13:24
2006.05.21
Время выполнения запроса


4-1141014465
FunkyByte
2006-02-27 07:27
2006.05.21
Программная коректировка размеров окна при изменении его размеров


2-1146647312
Sw
2006-05-03 13:08
2006.05.21
Компонент TdxDBTreeView


3-1143442572
sanchos
2006-03-27 10:56
2006.05.21
Запись строчки в отпределённое место