Как сжать видео на компьютере без онлайн-сервисов: качество, размер и целая папка сразу
Сжать видео на своём ПК без загрузки в интернет: HandBrake или ffmpeg, какой CRF выбрать, как уложиться в лимит Discord или почты, как пережать всю папку на видеокарте NVIDIA.
Онлайн-сжатие удобно для одного ролика на пару минут. С записью созвона на гигабайт, семейным видео или десятком файлов оно работает хуже: всё уходит на чужой сервер, сначала долго загружается, а в бесплатном тарифе упирается в лимит размера. На своём компьютере то же самое делается быстрее, и файл никуда не уезжает.
Ниже два пути: программа с окнами, если сжать надо пару раз, и ffmpeg, если хочется держать результат под контролем или обработать целую папку.
От чего зависит размер
Размер видео — это в основном битрейт × длительность. Разрешение и частота кадров влияют через битрейт: чтобы 4K выглядело прилично, ему нужно больше данных, чем 1080p. Поэтому ужимать можно тремя способами, от самого бережного к самому заметному:
- Другой кодек. H.265 (HEVC) при том же качестве обычно даёт файл на 30–50% меньше, чем H.264. Минус: старые телевизоры и часть браузеров его не открывают.
- Ниже качество кодирования. Параметр CRF у ffmpeg или «Constant Quality» у HandBrake. Разница между исходником и CRF 23 на глаз обычно не видна, а файл меньше в разы.
- Меньше разрешение. 4K → 1080p убирает до трёх четвертей объёма. Для телефона и мессенджеров этого почти всегда достаточно.
«Сжать без потери качества» в буквальном смысле нельзя: любое пережатие что-то теряет. Реально другое: потерять так мало, чтобы не было видно.
Вариант 1: HandBrake
HandBrake — бесплатная программа с открытым кодом для Windows, macOS и Linux. Внутри тот же движок, что и у ffmpeg.
- В окне выбора источника открой файл или, для нескольких роликов, папку (пакетное сканирование).
- Выбери пресет «Fast 1080p30»: он годится почти для всего.
- На вкладке «Видео» поставь кодек H.264 или H.265 и «Constant Quality» 22–24 для H.264 или 26–28 для H.265. Чем больше число, тем меньше файл.
- Нажми «Начать кодирование». Для папки сначала добавь все файлы в очередь, потом запусти её.
Если в системе есть видеокарта NVIDIA, в списке кодеков будет H.264 (NVEnc). Так в разы
быстрее, но при той же настройке качества файл чуть больше, чем у кодирования на процессоре.
Вариант 2: ffmpeg
Если ffmpeg ещё нет, установка и PATH разобраны в статье ffmpeg на Windows.
Базовое сжатие с хорошим балансом:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
-crf 23— качество. 18–20 почти без потерь, 23 стандарт, 26–28 заметно меньше файл.-preset— скорость.slowдаёт файл чуть меньше за то же качество, но кодирует дольше.-c:a aac -b:a 128k— звук. Для речи хватит и96k.
Сильнее, в H.265 (для iPhone добавь -tag:v hvc1, иначе QuickTime файл не откроет):
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -tag:v hvc1 -c:a aac -b:a 128k output.mp4
Уменьшить до 1080p с сохранением пропорций:
ffmpeg -i input.mp4 -vf "scale=-2:1080" -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
То же на видеокарте NVIDIA, в несколько раз быстрее:
ffmpeg -i input.mp4 -c:v h264_nvenc -cq 28 -preset p5 -c:a aac -b:a 128k output.mp4
У NVENC вместо -crf параметр -cq, и шкалы у них не совпадают: -cq 28 у NVENC примерно
соответствует -crf 23–24 у x264. Подбери на коротком фрагменте.
Уложиться в лимит: Discord, почта, мессенджер
Когда нужен конкретный размер, качество подбирают не на глаз, а через битрейт.
Битрейт видео (кбит/с) ≈ размер (МБ) × 8192 ÷ длительность (сек) − битрейт звука.
Пример: ролик 60 секунд под лимит 10 МБ. 10 × 8192 ÷ 60 ≈ 1365 кбит/с. Минус 96 на звук и запас 10% — примерно 1150 кбит/с на видео. Точнее всего попадает двухпроходное кодирование:
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 1150k -pass 1 -an -f null NUL
ffmpeg -i input.mp4 -c:v libx264 -b:v 1150k -pass 2 -c:a aac -b:a 96k output.mp4
Лимиты у сервисов меняются, текущий видно в сообщении об ошибке. У бесплатного Discord с 2025
года это 10 МБ на файл, у почтовых сервисов вложения обычно до 20–25 МБ. Если на 60
секунд выходит меньше 800 кбит/с, картинка развалится. Тогда уменьшай разрешение
(-vf "scale=-2:720") или режь ролик.
Целая папка за один раз
PowerShell, все MP4 и MOV из текущей папки в подпапку compressed:
mkdir compressed
Get-ChildItem *.mp4, *.mov | ForEach-Object {
ffmpeg -i $_.FullName -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "compressed\$($_.BaseName).mp4"
}
Исходники не трогай, пока не посмотришь результат. Записи с телефона часто повёрнуты через метаданные. ffmpeg это учитывает, но проверь пару файлов, прежде чем удалять оригиналы.
Почему файл получился больше исходного
Такое бывает, и это не ошибка. Телефоны и экранные рекордеры часто уже жмут сильно, а ты
пережимаешь с CRF 18 или с более высоким разрешением. Или исходник в H.265, а ты кодируешь в
H.264. Посмотри битрейт исходника (ffprobe -hide_banner input.mp4) и сравни: если он и так
низкий, выигрыш даст только уменьшение разрешения.
Отдать это агенту
Если команды набирать не хочется, Дока сделает то же на твоём компьютере. Выбери папку с видео и напиши словами: «сожми все ролики здесь, чтобы каждый был меньше 10 МБ, в подпапку compressed». Агент посмотрит длительность файлов через ffprobe, посчитает битрейт, покажет команду и запустит её после твоего подтверждения. Видео при этом не выходит за пределы твоего диска.