Codec
Кодек (кодер-декодер)
Программный или аппаратный компонент, который сжимает (кодирует) и распаковывает (декодирует) аудио-, видео- или графические данные по определённому алгоритму, определяя как качество, так и размер файла сжатого результата.
Техническая деталь
Аудиокодеки включают кодеки с потерями (MP3/LAME, AAC/FDK, Opus, Vorbis) и без потерь (FLAC, ALAC, WavPack). Видеокодеки включают H.264/AVC (наиболее совместимый), H.265/HEVC (на 50% лучшее сжатие, патентные ограничения), VP9 (Google, без роялти) и AV1 (Alliance for Open Media, лучшее сжатие, медленное кодирование). Кодек отличается от формата контейнера: MP4 — это контейнер, который может содержать видео H.264 или H.265 с аудио AAC или AC-3. Поддержка кодеков в браузерах варьируется: метод isTypeSupported() API MediaSource проверяет доступность кодека. FFmpeg.wasm обеспечивает доступ к большинству кодеков в браузере через WebAssembly.
Пример
```javascript
// Codec: Web Audio API example
const audioCtx = new AudioContext();
const response = await fetch('audio.mp3');
const buffer = await audioCtx.decodeAudioData(await response.arrayBuffer());
const source = audioCtx.createBufferSource();
source.buffer = buffer;
source.connect(audioCtx.destination);
source.start();
```