Сжать видео для WhatsApp
Сделайте видео достаточно лёгким, чтобы отправить в WhatsApp в хорошем качестве. Всё работает в браузере.
WhatsApp отправляет видео в чате как медиафайл до 16 МБ и по дороге сильно его пережимает.
Ролик побольше можно отправить документом (до 2 ГБ), но тогда получателю придётся скачать файл, прежде чем смотреть.
Что влезает в 16 МБ
Что выберет компрессор для обычного ролика с телефона 1080p 30 fps (около 16 Мбит/с) разной длины при лимите 16 МБ:
| Длина ролика | Разрешение | Битрейт видео |
|---|---|---|
| 30 секунд | 1080p | 3 871 кбит/с |
| 1 минута | 720p | 1 898 кбит/с |
| 2 минуты | 540p | 896 кбит/с |
| 5 минут | 240p | 327 кбит/с |
| 10 минут | 240p 24 fps | 143 кбит/с |
Как это работает
- Мы читаем видео на вашем устройстве и измеряем, насколько оно детализировано (SI) и сколько в нём движения (TI).
- По выбранному размеру считаем точный бюджет битрейта и подбираем разрешение и частоту кадров, которые лучше всего смотрятся при этом бюджете. Меньшее разрешение с достаточным битрейтом выглядит лучше полного разрешения в квадратах.
- Видеокарта кодирует ролик через WebCodecs. Форматы, которые браузер не умеет декодировать, проходят через FFmpeg, скомпилированный в WebAssembly.
- Если результат хоть немного больше лимита, мы перекодируем с исправленным битрейтом, чтобы файл поместился.
Вопросы
Почему WhatsApp делает видео мыльным?
WhatsApp сильно пережимает большие файлы. Если отправить уже лёгкий и аккуратно закодированный ролик, WhatsApp выкинет из него меньше.
Моё видео куда-то загружается?
Нет. Nibbo работает в браузере и сжимает видео на вашем устройстве. После загрузки страницы можно выключить Wi-Fi, и всё продолжит работать.
Почему у видео уменьшается разрешение?
У маленького файла фиксированный запас битов. Если распределить их по меньшему числу пикселей, картинка будет чистой; при полном разрешении она рассыпалась бы на квадраты.