Браузерные требования
Какие браузеры и версии поддерживаем, какие WASM-фичи требуются.
Поддерживаемые браузеры
| Браузер | Минимум | Полная поддержка | Что не работает |
|---|---|---|---|
| Chrome / Chromium | 119 | 122+ | — |
| Edge | 119 | 122+ | — |
| Firefox | 120 | 122+ | AVIF encode медленнее на 30% |
| Safari (macOS) | 17.0 | 17.4+ | HEIC encode через polyfill |
| Safari (iOS) | 17.0 | 17.4+ | Видео >4K не работает |
| Chrome Android | 119 | 122+ | — |
| Samsung Internet | 22 | 24+ | — |
Требуемые WebAssembly-фичи
- SIMD — обязательно. Без него FFmpeg-WASM работает в 4-6× медленнее (отрубаем).
- Threads (SharedArrayBuffer) — желательно. Без них одно ядро, время ×3 на видео.
- Bulk memory operations — обязательно.
- Reference types — обязательно.
- Tail calls — опционально (используется в новых кодеках).
Note: Для SharedArrayBuffer мы отдаём заголовки
Cross-Origin-Opener-Policy: same-origin и Cross-Origin-Embedder-Policy: require-corp. Если ты встраиваешь нас в iframe — настрой эти заголовки у себя.
Память
Браузер выделяет нам линейную WebAssembly-память. Максимум:
- Desktop Chrome / Firefox — до 4 ГБ (32-bit pointers).
- Mobile Chrome / Firefox — до 2 ГБ.
- Safari — до 2 ГБ (исторический лимит).
- iOS Safari — до 1 ГБ (агрессивный recycle).
Из этого следует наш FAQ-лимит: 250 МБ во Free, 2 ГБ в Pro. На Safari/iOS вычитаем ~30%.
Что если у меня старый браузер
Мы покажем баннер с предложением обновиться. Сервис не упадёт — просто кнопка «Конвертировать» будет неактивна с подсказкой какую версию надо.
Проверка совместимости
Открой DevTools → Console и запусти:
fetch('/api/check').then(r => r.json()).then(console.log);
Получишь JSON с результатом проверки SIMD, threads, memory limits и определением твоей конкретной модели CPU.