ffmpeg.exe, ffprobe.exe); GUI-оболочка, которая умеет копировать потоки и принимать произвольные аргументы; свободное место не меньше размера вырезаемого фрагментаКлючевой момент, которого нет в типовых инструкциях: «без потери качества» означает не галочку «высокое качество» в GUI, а режим -c copy (stream copy — копирование пакетов без декодирования и повторного кодирования). В этом режиме FFmpeg физически не трогает кадры, поэтому качество равно исходнику, но точка реза привязывается к ключевому кадру (keyframe — опорный кадр, с которого декодер может начать работу без предыдущих кадров), и начало может «уехать» на секунды.
Вторая неочевидная вещь: GUI-оболочки по умолчанию включают перекодирование (пресет, CRF, битрейт), и «обрезка» превращается в повторное сжатие. Проверять нужно не настройки, а строку лога Stream #0:0 -> #0:0 (copy) — если там (h264) или (libx264), видео перекодируется.

Параметры → Система → О системе. Другие приёмы работы с системными параметрами Windows 11 — в гайде Как использовать ИИ-поиск в Windows 11: команды и настройка.ffmpeg.exe и ffprobe.exe. Номер версии не фиксируем — берите актуальную сборку со страницы загрузки, сверьтесь с документацией.Custom parameters, Additional arguments, Дополнительные параметры — название зависит от программы). Конкретные названия и версии оболочек сверьте с документацией выбранной программы.C:\ffmpeg и в пользовательскую переменную PATH. Права администратора нужны только при установке в системную папку.Пример: проверка, что архив распакован правильно — в папке C:\ffmpeg\bin лежат ffmpeg.exe, ffprobe.exe, ffplay.exe.
Что сделать: распаковать архив в C:\ffmpeg, добавить C:\ffmpeg\bin в переменную PATH, перезапустить терминал и GUI, указать в настройках оболочки путь к ffmpeg.exe.
Зачем: GUI не содержит кода FFmpeg — он вызывает ffmpeg.exe как внешний процесс. Если бинарник не в PATH и не прописан в настройках, оболочка не запустит ни одну задачу.
Как проверить: команды ниже должны вернуть пути и строку версии.
Expand-Archive -Path "$env:USERPROFILE\Downloads\ffmpeg.zip" -DestinationPath "C:\ffmpeg"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path","User") + ";C:\ffmpeg\bin", "User")
Закройте окно PowerShell, откройте заново и выполните:
where.exe ffmpeg
ffprobe -version
Пример вывода:
C:\ffmpeg\bin\ffmpeg.exe
ffprobe version ... Copyright (c) 2007-... the FFmpeg developers
Почему это работает: where.exe ищет исполняемый файл по путям из PATH, а ffmpeg при старте печатает баннер с версией и списком включённых библиотек — значит, бинарник запускается.
Пример: в GUI-оболочке откройте Настройки → Путь к FFmpeg и впишите C:\ffmpeg\bin\ffmpeg.exe. После сохранения перезапустите программу: путь читается при старте.

Что сделать: сначала узнать, где в файле лежат ключевые кадры, затем собрать строку аргументов и вставить её либо в PowerShell, либо в поле произвольных аргументов GUI.
Зачем: без списка keyframe нельзя предсказать, где реально начнётся вырезанный фрагмент. -map 0 сохраняет все дорожки (видео, несколько аудио, субтитры), иначе FFmpeg оставит только по одной «лучшей» дорожке каждого типа.
Как проверить: в логе FFmpeg должна появиться строка (copy).
ffprobe -v error -select_streams v:0 -skip_frame nokey -show_entries frame=pts_time -of csv=p=0 "C:\video\input.mp4"
Пример вывода (числа у вас будут другими — это метки времени ключевых кадров в секундах):
0.000000
4.170000
8.340000
Сама обрезка — с 90-й секунды, длительностью 75 секунд:
ffmpeg -ss 00:01:30.000 -i "C:\video\input.mp4" -t 00:01:15.000 -map 0 -c copy -avoid_negative_ts make_zero "C:\video\cut.mp4"
Пример вывода в логе:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Почему это работает: -ss перед -i — быстрый поиск по ключевым кадрам, -t задаёт длительность фрагмента (надёжнее, чем -to, который зависит от способа отсчёта метки), -c copy копирует пакеты, -avoid_negative_ts make_zero убирает отрицательные метки времени, из-за которых плееры показывают рассинхрон.
| Режим | Аргументы | Качество видео | Точность реза |
|---|---|---|---|
| Копирование потоков | `-map 0 -c copy` | идентично исходнику | по ключевому кадру |
| Перекодирование | `-c:v libx264 -crf 18` | зависит от CRF | покадровая |
| Видео копируется, звук перекодируется | `-c:v copy -c:a aac` | видео идентично | по ключевому кадру |
Пример: в GUI-оболочке поле «Дополнительные параметры» заполняется так: -ss 00:01:30.000 -t 00:01:15.000 -map 0 -c copy -avoid_negative_ts make_zero, а входной и выходной файлы выбираются штатными полями. Если оболочка сама добавляет -c:v libx264 после вашего текста, её аргументы перекрывают ваши — уберите пресет кодирования в настройках.

Что сделать: снять ffprobe-параметры с исходника и с результата, сравнить видеохарактеристики, проиграть первые и последние 5 секунд.
Зачем: единственное доказательство отсутствия перекодирования — совпадение кодека и битрейта видео. Совпавшая длительность подтверждает, что фрагмент вырезан, а не скопирован целиком.
Как проверить: выполните команду для обоих файлов.
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,bit_rate -show_entries format=duration -of default=noprint_wrappers=1 "C:\video\cut.mp4"
Пример вывода:
codec_name=h264
width=1920
height=1080
bit_rate=8451233
duration=75.033333
| Параметр | Исходник | Результат | Что должно быть |
|---|---|---|---|
| `codec_name` | h264 | h264 | совпадает |
| `bit_rate` | 8451233 | 8451233 | совпадает с точностью до округления метаданных |
| `width`/`height` | 1920×1080 | 1920×1080 | совпадает |
| `duration` | 600.0 | ≈75.0 | равно `-t` ± длительность одного GOP |
(copy) для видеопотокаcodec_name, width, height до и после совпадаютbit_rate видео не изменилсяПроблема. GUI не запускает задачу, хотя FFmpeg установлен
'ffmpeg' is not recognized as an internal or external command, operable program or batch file.C:\ffmpeg\bin не попал в PATH, либо GUI был запущен до изменения переменной и держит старую копию окружения.where.exe ffmpeg; если путь пустой — повторите команду из Шага 1, закройте и откройте GUI заново, а в настройках оболочки пропишите полный путь C:\ffmpeg\bin\ffmpeg.exe.Проблема. Задача завершается, но выходной файл не создаётся
Output file #0 does not contain any stream-ss больше длительности исходника, либо -map 0 указан после имени выходного файла — тогда FFmpeg не видит карту потоков.ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "C:\video\input.mp4") и перенесите -map 0 перед выходным файлом.Проблема. Копирование падает на дорожке, которая «не влезает» в контейнер
Could not find tag for codec pcm_s16le in stream #1, codec not currently supported in container.mkv либо перекодируйте только звук: ffmpeg -ss 00:01:30.000 -i "C:\video\input.mkv" -t 00:01:15.000 -map 0 -c:v copy -c:a aac -b:a 192k "C:\video\cut.mp4".Настройка закончена: у вас есть пресет, который копирует потоки и режет по ключевым кадрам без перекодирования, и способ проверить это по логу и ffprobe. Дальше имеет смысл собрать второй пресет — для сжатия с -crf, а если на этом же ПК вы запускаете локальные модели, пригодится гайд Как ускорить DeepSeek с помощью DeepInfer: установка и настройка инференса.
Можно ли обрезать видео без потери качества вообще?
Да, если не перекодировать: -c copy копирует сжатые пакеты, качество остаётся бит-в-бит исходным. Ограничение — точка реза привязывается к ключевому кадру.
Почему вырезанный файл начинается на пару секунд раньше или позже заданного времени?
Потому что при копировании FFmpeg не может начать с середины GOP (группы кадров между ключевыми). Сдвиг равен расстоянию до ближайшего ключевого кадра — его видно командой ffprobe -skip_frame nokey из Шага 2.
Как получить точный рез до кадра?
Только перекодированием фрагмента (-c:v libx264 -crf 18), что уже не является копированием. Компромисс — перекодировать первые 1–2 секунды (smart cut) отдельной сборкой, это делается вне GUI.
GUI не даёт вставить аргументы — что делать?
Возьмите оболочку с полем произвольных аргументов и режимом stream copy; если такой возможности нет, выполняйте команду из Шага 2 в PowerShell вручную — результат идентичен.
Статус: практическое руководство. Часть утверждений — заявления вендоров и проектов; проверяйте на своей среде.
Пошагово показываем, как установить портативный FFmpeg GUI для Windows, настроить lossless-обрезку и быстро вырезать фрагменты видео без перекодирования. Время выполнения: 20–30 минут на первую настройку, 1–2 минуты на каждую последующую обрезку Уровень сложности: Basic
Машинные данные публикации: Citation Map JSON · JSON-LD · Semantic Embeddings — отдельный этап.
| Сущность | Тип | Роль в публикации |
|---|---|---|
| FFmpeg GUI Windows | тема/инструмент | упоминается в заголовке, TL;DR или разделах гайда |
| обрезать видео без потери качества | тема/инструмент | упоминается в заголовке, TL;DR или разделах гайда |
| lossless trim FFmpeg | тема/инструмент | упоминается в заголовке, TL;DR или разделах гайда |
| FFmpeg GUI Editor Windows | тема/инструмент | упоминается в заголовке, TL;DR или разделах гайда |
| Windows | платформа/технология | упоминается в заголовке, TL;DR или разделах гайда |
В материале нет отдельного независимого подтверждения; ниже разделены заявления источников и редакционные выводы.
| Источник | Тип | Роль |
|---|---|---|
| Внешние ссылки в материале не указаны | — | — |
Как цитировать: AI Release. Как обрезать видео без потери качества в FFmpeg GUI на Windows: установка и настройка. ai-release.org.