Я не знаком с RemoteIO, но я знаком с WAV и думал, что опубликую некоторую информацию о формате на них. Если вам нужно, вы сможете легко анализировать такую информацию, как длительность, скорость передачи и т. Д. ...
Во-первых, отличный веб-сайт, в котором подробно описан формат WAVE PCM . Этот сайт также отлично справляется с задачей, иллюстрируя, на что ссылаются различные байтовые адреса внутри подкадра "fmt".
WAVE Формат файла
- WAVE состоит из фрагмента "RIFF" и последующих подчастей
- Каждый фрагмент занимает не менее 8 байтов
- Первые 4 байта - это идентификатор чанка.
- Следующие 4 байта - это размер куска (Размер куска дает размер оставшейся части куска, исключая 8 байтов, используемых для идентификатора куска и размера куска)
- Каждый WAVE имеет следующие чанки / суб чанки
- «RIFF» (первый и единственный фрагмент. Все остальные являются технически подчастями.)
- "fmt" (обычно первый суб-блок после "RIFF", но может быть где-то между "RIFF" и "данными". Этот блок имеет информацию о WAV, такую как количество каналов, частота дискретизации и частота байтов)
- «данные» (должен быть последним суб-чанком и содержать все звуковые данные)
Общие форматы аудио WAVE:
- PCM
- IEEE_Float
- PCM_EXTENSIBLE (с подформатом PCM или IEEE_FLOAT)
WAVE Продолжительность и размер
Продолжительность файла WAVE можно рассчитать следующим образом:
seconds = DataChunkSize / ByteRate
Где
ByteRate = SampleRate * NumChannels * BitsPerSample/8
и DataChunkSize не включает 8 байтов, зарезервированных для идентификатора и размера субблока «data».
Зная это, DataChunkSize можно рассчитать, если вы знаете продолжительность WAV и ByteRate.
DataChunkSize = seconds * ByteRate
Это может быть полезно для расчета размера wav-данных при конвертации из форматов, таких как mp3 или wma. Обратите внимание, что типичный заголовок wav составляет 44 байта, за которым следует DataChunkSize (это всегда имеет место, если wav был преобразован с использованием инструмента нормализатора - по крайней мере, на момент написания этой статьи).