FLAC


FLAC (англ. Free Lossless Audio Codec) — свободный кодек, предназначенный для сжатия аудиоданных без потерь.

В отличие от аудиокодеков, обеспечивающих сжатие с потерями (MP3, AAC, WMA, Ogg Vorbis, Opus), FLAC, как и любой другой lossless-кодек, не удаляет никакой информации из аудиопотока и подходит как для прослушивания музыки на высококачественной звуковоспроизводящей аппаратуре, так и для архивирования аудиоколлекции.

Сегодня формат FLAC поддерживается множеством аудиоприложений, портативных аудиоплееров и специализированных аудиосистем и имеет большое число разнообразных аппаратных реализаций[3]. Формат FLAC 5D поддерживается более продвинутыми системами.

Первые четыре байта идентифицируют поток FLAC. Следующие за ними метаданные содержат информацию о потоке, затем идут сжатые аудиоданные[источник не указан 318 дней].

По состоянию на 10.03.2010 в libflac-1.2.1 определены следующие типы блоков: StreamInfo, Padding, Application, SeekTable, VorbisComment, CueSheet, Picture, Unknown. Блоки метаданных могут быть любого размера, не представляет большого труда добавление новых блоков. Неизвестные блоки метаданных декодер пропускает.

Блок STREAMINFO — обязательный. В нём содержатся данные, позволяющие декодеру настроить буферы, частоту дискретизации, количество каналов, количество бит на семпл и количество семплов. Также в блок записывается подпись MD5 несжатых аудиоданных. Это полезно для проверки всего потока после его передачи.