Как работает сжатие в браузере
SelfKit — это сайт, который ведёт себя как приложение на вашем устройстве. Вот что происходит с вашим видео.
Файл не покидает устройство
Когда вы выбираете видео, браузер читает его локально. Код для сжатия скачивается один раз, как обычная веб-страница, а дальше работает на вашем процессоре.
Нет шага загрузки и нет сервера, который принимает файлы. Поэтому всё работает и без интернета.
Как мы попадаем точно в размер
Размер файла — это битрейт, умноженный на длительность. По лимиту и длине видео мы считаем битрейт, оставляем небольшой запас и делим его между картинкой и звуком.
Пример: 60-секундному видео при лимите 10 МБ достаётся около 1280 кбит/с — достаточно для чёткого 720p. После сжатия мы проверяем реальный размер, и если он больше лимита, сжимаем заново с чуть меньшим битрейтом.
Аппаратное ускорение
Современные браузеры дают доступ к встроенному в устройство видеокодировщику через WebCodecs — тому же чипу, которым телефон записывает видео. Это во много раз быстрее программного кодирования.
Если его нет или файл в старом формате, SelfKit переключается на движок совместимости (ffmpeg.wasm). Он медленнее, но читает почти всё.
Работа офлайн
После первого визита браузер сохраняет страницу и движок сжатия. Включите режим полёта, обновите страницу и сожмите видео — всё работает.
Ограничения
Всё происходит в памяти устройства, поэтому очень большие файлы на старых телефонах могут не поместиться. Длинные видео на медленных устройствах сжимаются дольше.
Поддержка браузеров
| Браузер | Быстрый режим | Режим совместимости |
|---|---|---|
| Chrome / Edge (desktop, Android) | Да | Да |
| Safari (macOS, iOS) | Зависит от версии | Да |
| Firefox (desktop) | Зависит от версии | Да |
| Samsung Internet | Зависит от версии | Да |
Поддержка зависит от версии браузера и устройства. Если быстрый режим недоступен, автоматически включается режим совместимости.