CodeKitHub
Инструменты на каждый день

Сжать видео до точного размера файла

Последнее обновление:

Этот инструмент уменьшает видео до выбранного вами размера файла — 8 МБ, 25 МБ или любое другое число — рассчитывая точный необходимый битрейт и перекодируя видео с помощью ffmpeg прямо в браузере (через ffmpeg.wasm), поэтому файл никогда не загружается на сервер. Расчёт следует стандартной формуле видеокодирования (целевой битрейт = целевой размер ÷ длительность) — тот же подход рекомендует собственная документация Handbrake для кодирования с ограничением размера. Если вы упираетесь в лимит бесплатной загрузки Discord в 8 МБ, используйте пресет 8 МБ; если почтовый провайдер отклоняет большое вложение, используйте пресет 25 МБ (лимит Gmail); для остальных случаев введите произвольный целевой размер.

Что это за инструмент?

Компрессор видео с целевым размером перекодирует видео с тем битрейтом, который необходим, чтобы уложиться в выбранный размер файла (или чуть меньше), — вместо обычного ползунка «качества», дающего непредсказуемый размер. Это различие важно, когда ограничение задано кем-то другим — лимит бесплатных вложений Discord составляет 8 МБ, а большинство почтовых провайдеров, включая Gmail, ограничивают вложения 25 МБ, — а не тем, как видео выглядит.

Этот инструмент измеряет длительность видео, вычисляет общий бюджет битрейта для целевого размера, распределяет этот бюджет между видео- и аудиопотоками и перекодирует с помощью ffmpeg.wasm — сборки открытого кодировщика FFmpeg на WebAssembly, — работающей полностью внутри вкладки вашего браузера. Ничего не загружается на сервер: кодирование происходит на вашем собственном устройстве.

Зачем его использовать?

  • 100% локально: видеофайл никогда не покидает ваше устройство — ни загрузки на сервер, ни ограничения размера, навязанного квотой хостинга.
  • Создан для реальных ограничений: 8 МБ (бесплатный тариф Discord) и 25 МБ (Gmail/большинство почтовых провайдеров) — пресеты в один клик, плюс поле произвольного размера для любого другого лимита.
  • Использует стандартную формулу расчёта битрейта из длительности вместо догадок, со встроенным запасом надёжности, поэтому фактический результат почти никогда не превышает заданный размер.
  • Индикатор прогресса в реальном времени во время кодирования — обработка ffmpeg.wasm может занять некоторое время для длинных роликов, поэтому вы всегда видите, что процесс идёт, а не завис.
  • Показывает точный итоговый размер после сжатия, чтобы вы могли убедиться в соответствии лимиту перед загрузкой или отправкой файла.

Как использовать

  1. Нажмите на зону загрузки (или перетащите файл) — инструмент сначала считывает размер и длительность видео.
  2. Выберите целевой размер: 8 МБ для Discord, 25 МБ для почты/Gmail или введите произвольный размер в МБ.
  3. Нажмите «Compress video» и следите за индикатором прогресса — кодирование выполняется в вашем браузере и может занять от нескольких секунд до нескольких минут в зависимости от длины видео и мощности устройства.
  4. По завершении проверьте указанный итоговый размер и нажмите «Download».

Пример

Ввод

clip.mp4 — 42 МБ, длительность 0:35

Результат

clip-8MB.mp4 — 7,6 МБ

Целью было 8 МБ (Discord); инструмент рассчитал видеобитрейт около 1,5 Мбит/с для 35-секундного ролика, закодировал с запасом надёжности 10% и уложился в лимит с запасом.

Как рассчитывается целевой битрейт

Основная формула проста: общий битрейт (кбит/с) = целевой размер файла (в килобитах) ÷ длительность (в секундах). Инструмент применяет к байтовому бюджету запас надёжности около 10% перед этим расчётом, затем вычитает зарезервированный аудиобитрейт (обычно 128 кбит/с, снижаясь до 96 или 64 кбит/с для очень маленьких целевых размеров, чтобы аудио не съедало слишком много от ограниченного бюджета), получая итоговый видеобитрейт. Этот видеобитрейт передаётся кодировщику ffmpeg вместе с жёстким ограничением (`-maxrate`) и размером буфера (`-bufsize`), чтобы короткие всплески сложного движения не выходили за пределы целевого размера.

Одна деталь пересчёта единиц важна для тех, кто использует эти пресеты точно: лимиты загрузки платформ вроде «8 МБ» у Discord обычно указаны в двоичных мегабайтах (1 МБ = 1 048 576 байт, иногда называемых МиБ), что соответствует тому, как обычно задаются лимиты хранения и передачи данных. Расчёт байтового бюджета в этом инструменте намеренно консервативен — он использует меньший, более строгий десятичный мегабайт (1000-based) для целевого бюджета и добавляет сверху запас надёжности, — поэтому результат остаётся в пределах лимита при любой трактовке «МБ».

Выбор целевого размера для популярных платформ

Если вы не уверены, какой лимит действует, проверьте сообщение об ошибке, выданное платформой, — большинство отказов из-за размера вложения указывают точный лимит, который можно ввести напрямую как произвольный целевой размер.

НазначениеТипичный лимитРекомендуемый целевой размер
Discord (бесплатный тариф)8 МБ на вложениеПресет 8 МБ
Discord Nitro50–100 МБ в зависимости от уровня подпискиПроизвольный размер
Gmail / большинство почтовых провайдеров25 МБ на сообщениеПресет 25 МБ
Slack (бесплатное рабочее пространство)1 ГБ (но крупные файлы замедляют загрузку)Произвольный размер, если вообще нужен

Из наших собственных тестов

Мы сгенерировали синтетический тестовый ролик с помощью FFmpeg в командной строке (12-секундное видео 1280×720 с тоновым звуком, закодированное на скорости ~800 кбит/с для получения реалистичного исходного файла в несколько мегабайт) и пропустили его через этот инструмент с целью в пресет 8 МБ для Discord. Итоговый файл уложился в 8 МБ, как и ожидалось, подтвердив, что расчёт битрейта и запас надёжности работают и на реальном кодировании, а не только в теории.

Часто задаваемые вопросы

Загружается ли моё видео куда-либо?

Нет. Сжатие выполняется с помощью ffmpeg.wasm — сборки FFmpeg на WebAssembly, — работающей внутри вкладки вашего браузера. Видеофайл считывается локально и никогда не отправляется на сервер — можно даже отключиться от интернета после того, как страница и её движок один раз загрузились.

Почему первое сжатие запускается не сразу?

Инструмент загружает движок ffmpeg.wasm (примерно 30 МБ) при первом запуске сжатия за сессию. После этой первоначальной загрузки последующие операции сжатия на той же странице начинаются мгновенно.

Будет ли итоговый файл всегда меньше заданного размера?

Инструмент закладывает запас надёжности (фактический бюджет битрейта нацелен примерно на 90% от выбранного размера), поскольку реальные кодировщики не попадают в точный битрейт на каждом кадре. В редком случае, если результат всё же немного превышает лимит, выберите произвольный размер поменьше, чтобы увеличить запас, — инструмент предупредит вас, если это произойдёт.

Почему именно 8 МБ для Discord?

Бесплатный тариф Discord (без Nitro) ограничивает загрузку файлов 8 МБ на вложение; подписчики Nitro получают более высокие лимиты (50 МБ или 100 МБ в зависимости от уровня подписки). Пресет 8 МБ нацелен на лимит бесплатного тарифа, с которым сталкивается большинство пользователей.

Почему именно 25 МБ для почты?

25 МБ — это лимит вложений Gmail и распространённый порог у других крупных провайдеров. Если у вашего провайдера другой лимит, используйте поле произвольного размера.

Ухудшает ли сжатие качество видео?

Да, неизбежно — достижение размера файла, намного меньшего исходного, означает более низкий битрейт, что снижает детализацию и может вызывать заметные артефакты сжатия, особенно в сценах с быстрым движением или высокой детализацией. Инструмент автоматически подбирает распределение битрейта между видео и аудио, чтобы сохранить качество максимально высоким при заданном размере, но ролик в 42 МБ, сжатый до 8 МБ, будет выглядеть заметно менее чётким, чем оригинал.

В каком формате видео и аудио выдаётся результат?

Результат всегда — MP4 с видео H.264 и аудио AAC — наиболее широко совместимая комбинация для Discord, почтовых клиентов и большинства социальных платформ.

Похожие инструменты