FFmpeg
FFmpeg часто воспринимают как программу «для тех, кто любит командную строку», хотя одна из самых полезных его операций укладывается в одну команду. Если ролик уже сжат подходящими кодеками, но лежит в неудобном контейнере MOV или MKV, его не обязательно кодировать заново. FFmpeg умеет переложить готовые видео- и аудиопотоки в MP4 — быстро, без повторного ухудшения изображения и без многочасового ожидания.
| Пересобрать MP4↓ | Скачать FFmpeg↓ |

Как преобразовать MOV или MKV в MP4 без потери качества
Ниже речь идёт о FFmpeg 8.1, выпущенном в марте 2026 года. Интерфейса с кнопками у базового набора FFmpeg нет: команды выполняются в Windows Terminal, PowerShell или обычной командной строке. Это сперва непривычно, зато операция получается прозрачной — в команде видно, что именно копируется, а что кодируется.
Почему обычная конвертация здесь бывает лишней
Расширение файла показывает контейнер, а не способ сжатия картинки. Внутри MOV, MKV и MP4 могут находиться уже готовые потоки H.264, HEVC, AAC и других форматов. При стандартной конвертации программа декодирует каждый кадр и затем сжимает его снова. На это уходит время, а при сжатии с потерями изображение понемногу меняется.
Режим -c copy работает иначе: FFmpeg не декодирует и не кодирует потоки, а копирует их в новый контейнер. В документации этот процесс называется streamcopy. Поэтому десятиминутный ролик может обработаться за несколько секунд, а видео останется побитово тем же. Ограничение существенное: новый контейнер должен поддерживать исходные видео, звук и субтитры.
Подготовьте папку и проверьте файл
Распакуйте сборку FFmpeg и откройте терминал в папке, где находится ffmpeg.exe. Самый понятный вариант на Windows — поместить рядом исходный ролик. Так в первой попытке не придётся разбираться с переменной PATH и длинными путями.
Если имя содержит пробелы, заключайте его в кавычки. Сначала можно попросить программу только прочитать сведения о контейнере:
ffmpeg -i "семейное видео.mov"
Команда не создаёт новый файл: FFmpeg покажет длительность и найденные дорожки. Красный текст в терминале при этом не обязательно означает поломку. У команды нет имени выходного файла, поэтому после отчёта она закономерно завершится сообщением о его отсутствии.

Быстрая пересборка контейнера
Для первого запуска используйте короткую команду:
ffmpeg -i "семейное видео.mov" -c copy "семейное видео.mp4"
-i указывает входной файл, -c copy запрещает повторное кодирование, последнее имя задаёт результат. Исходник не удаляется и не меняется. Если в текущей папке уже существует файл с таким названием, FFmpeg спросит, разрешено ли его перезаписать.
После завершения обратите внимание на скорость обработки и итоговый размер. Он обычно близок к исходному, потому что медиаданные не пережимались. Небольшая разница возможна из-за устройства контейнеров и служебных метаданных.
Что делать с несовместимым звуком
Не всякая дорожка из MKV или MOV разрешена внутри MP4. Например, необычный аудиокодек или часть субтитров способны остановить простое копирование. В такой ситуации не надо сразу перекодировать картинку. Чаще разумнее оставить видео как есть, а звук преобразовать в AAC:
ffmpeg -i "запись.mkv" -c:v copy -c:a aac -b:a 192k "запись.mp4"
Здесь -c:v copy копирует видео без изменений, тогда как -c:a aac кодирует только аудио. Параметр -b:a 192k задаёт битрейт звука. Такой вариант идёт медленнее чистого streamcopy, но всё равно заметно быстрее полной конвертации и не трогает качество изображения.
Если исходник содержит несколько звуковых дорожек или субтитров, выбор потоков лучше делать осознанно. Без параметров -map FFmpeg выбирает подходящие потоки автоматически; это удобно для обычного ролика с одним видео и одним звуком, но в многодорожечном файле часть материалов может не попасть в результат.
Как сохранить нужные дорожки
Для файла с несколькими языками можно скопировать первую видеодорожку и все аудиодорожки:
ffmpeg -i "фильм.mkv" -map 0:v:0 -map 0:a? -c copy "фильм.mp4"
Знак вопроса после 0:a делает звук необязательным: команда не оборвётся, если аудиодорожки в файле нет. Однако совместимость по-прежнему зависит от кодеков. Если MP4 отвергает один из потоков, вернитесь к варианту с -c:v copy -c:a aac или выберите только нужную дорожку.
Почему нельзя одновременно наложить фильтр
При копировании FFmpeg не получает декодированные кадры, поэтому обрезка изображения, изменение разрешения, стабилизация, цветокоррекция и водяной знак с -c copy несовместимы. Для таких операций понадобится видеокодек, например H.264 или HEVC, а значит — полноценное перекодирование. Это не недостаток команды, а следствие её принципа работы.
Обрезать ролик по времени в режиме копирования можно, но граница нередко привязывается к ближайшему ключевому кадру. Для точного монтажа до кадра также потребуется перекодирование хотя бы участка вокруг стыка. Зато для смены контейнера без редактирования streamcopy остаётся самым аккуратным способом.
Проверка готового MP4
Откройте результат в привычном проигрывателе и проверьте начало, участок в середине и конец. Для многодорожечного материала отдельно переключите языки и убедитесь, что звук синхронен. Если файл играет на компьютере, но не открывается на телевизоре или телефоне, причина обычно не в расширении MP4, а в неподдерживаемом кодеке внутри него. Тогда одной пересборки контейнера недостаточно.
FFmpeg ценен именно тем, что не скрывает эту разницу. Можно начать с быстрой операции без потери качества, а перекодировать только тот поток, который действительно мешает совместимости.
Скачать FFmpeg
| Версия | 8.1 |
| Платформы | Windows, macOS, Linux |
| Лицензия | Свободное ПО |
| Страница загрузки | Открыть загрузку FFmpeg |
На странице проекта опубликован исходный код и ссылки на сборки для разных систем. Для Windows выбирайте готовую сборку: она уже содержит исполняемые файлы и не требует самостоятельной компиляции.