FLAC (ang. Free Lossless Audio Codec) – format bezstratnej kompresji dźwięku z rodziny kodeków Ogg. Format ten jest rozwijany przez Xiph.Org Foundation, a jego wzorcowa implementacja jest wolnym oprogramowaniem.
W przeciwieństwie do stratnych kodeków dźwięku takich jak Vorbis, MP3 i AAC, kodek FLAC nie usuwa żadnych danych ze strumienia audio, dzięki czemu po dekompresji otrzymujemy cyfrowy obraz dźwięku identyczny z pierwowzorem. Niezgodność z analogowym oryginałem wynika wyłącznie z konwersji analogowo-cyfrowej – ograniczona liczba bitów nie odda w 100% analogowego dźwięku (szum kwantyzacji). Format FLAC jest obecnie obsługiwany przez większość oprogramowania służącego do edycji i odtwarzania dźwięku (czasami wymagana jest odpowiednia wtyczka).
29 stycznia 2003 Xiphophorus (obecnie Xiph.Org Foundation) przyjęła FLAC pod swój patronat. Obecnie są nim objęte m.in. Ogg Vorbis, Ogg Theora i Speex.
Projekt FLAC składa się z: -formatu strumieniowego, -powiązanego enkodera i dekodera w formie bibliotek, -flac – programu służącego do kompresji/dekompresji, -metaflac – programu służącego do edycji metadanych plików FLAC, -wtyczek dla odtwarzaczy audio.
Według licencji specyfikacja formatu może być wykorzystana przez każdego bez wcześniejszego pozwolenia (Xiph.org zachowało prawa do ustanawiania specyfikacji formatu), z zastrzeżeniem, że żaden element formatu nie zostanie opatentowany. Oznacza to także, że wszystkie implementacje w jakikolwiek sposób powiązane z projektem FLAC będą stanowić wolne oprogramowanie – kody źródłowe dla libFLAC i libFLAC++ dostępne są na zasadach licencji BSD, natomiast kody dla flac, metaflac i wtyczek na zasadach licencji GPL.
FLAC należy do grupy kodeków bezstratnych, a więc dane tworzące cyfrowy sygnał foniczny, po uprzedniej kompresji, można całkowicie odzyskać dokonując ich dekompresji – analogicznie jak w formacie ZIP. Jednak format FLAC został stworzony specjalnie do zmniejszania objętości plików dźwiękowych, dlatego przy kompresji tych plików możemy otrzymać dużo lepsze wyniki niż przy użyciu formatu ZIP (ZIP 10%-20%, FLAC 40%-60%). Kodeki stratnej kompresji mogą uzyskać stosunek kompresji nawet 90%, jednak jest to związane z usunięciem pewnych danych.
Kompresja FLAC wykorzystuje predykcję liniową – wartość pojedynczej próbki dźwięku jest przewidywana na podstawie wartości kilku wcześniejszych próbek, zapisywana jest tylko różnica między wartością rzeczywistą a obliczoną (różnice mają zwykle niewielkie wartości). Do zapisania różnic używa się kodów Rice'a – liczba bitów zależy od kodowanej wartości, tj. im mniejsza wartość, tym mniej bitów jest potrzebne.