iFFmpeg

iFFmpeg позволяет конвертировать видео и аудио через FFmpeg, выбирать контейнер и кодеки, настраивать качество и размер кадра, работать с несколькими потоками, субтитрами и фильтрами, обрезать и объединять материалы, извлекать кадры и запускать пакетное кодирование из графического интерфейса macOS без ручного составления длинных команд.

В основе рабочего процесса лежит простая схема: iFFmpeg анализирует исходный файл, показывает его видео-, аудио- и субтитровые потоки, а затем собирает для выбранных параметров команду FFmpeg. Для собственно кодирования нужен отдельно установленный исполняемый файл FFmpeg; графическая оболочка позволяет указать его в настройках или передать программе, после чего доступный набор кодеков и фильтров определяется возможностями этой сборки.

Программа полезна не только как конвертер формат в формат. Через одни и те же панели можно оставить совместимые дорожки без перекодирования, заменить лишь звук, подготовить ProRes или DNxHD/DNxHR для монтажа, настроить H.264 или HEVC, прожечь либо добавить субтитры, сформировать главы, экспортировать изображения, собрать ролик из последовательности кадров и автоматизировать повторяющиеся задания. При этом контейнер, кодек, формат пикселей, фильтры и схема потоков должны быть согласованы между собой — iFFmpeg не отменяет ограничений FFmpeg и выбранного медиаконтейнера.

Скачать iFFmpeg

Оценка 9.7Рекомендуем
  • Конвертация видео
  • Сжатие файлов
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
iFFmpeg
Оценка 8.5
  • Нужен отдельный FFmpeg
  • Только для macOS
  • Много сложных параметров
Скачать iFFmpeg
Загрузка начнётся после нажатия

Как устроен рабочий процесс в iFFmpeg

Главное окно построено вокруг очереди заданий. Медиафайл добавляется перетаскиванием в область Import Media либо через диалог выбора файла. После анализа программа формирует запись исходника с техническими параметрами и отдельный набор целевых настроек. В позднем интерфейсе iFFmpeg рабочая область разделена на Source и Target: слева удобнее проверять, что именно прочитано из файла, справа — какой контейнер, видеокодек и аудиокодек будут использованы при запуске. Такой подход особенно полезен при пакетной обработке, потому что выбор строки очереди сразу показывает параметры конкретного задания, а не абстрактный глобальный профиль.

Правая часть окна предназначена для быстрых изменений. Кодек видео и аудио можно переключить без прохода по длинной цепочке диалогов, а кнопка Advanced открывает параметры выбранного кодека. Это важное различие: общие свойства контейнера и потока задаются отдельно от специфических опций x264, x265, ProRes, VP8/VP9 и других кодировщиков. Если изменить контейнер, часть доступных сочетаний также меняется, потому что iFFmpeg старается не предлагать заведомо несовместимые варианты, но окончательную проверку всё равно выполняет FFmpeg.

Главное окно iFFmpeg с областью Import Media

Панель инструментов дополняет очередь быстрыми действиями для добавления потоков, фильтров, обрезки, метаданных и глав. Для повторяющихся операций это быстрее, чем каждый раз создавать задание с нуля. При этом важно различать изменение источника и изменение цели: например, добавление внешней аудиодорожки расширяет схему входов, а выбор AAC в целевом аудиопотоке определяет, как эта дорожка будет записана. Аналогично, добавленный фильтр относится к цепочке обработки и обычно исключает режим прямого копирования соответствующего потока.

Перед запуском полезно воспринимать каждую строку очереди как самостоятельный проект конвертации: исходные потоки, целевой контейнер, выбранные кодеки, фильтры, временной диапазон, субтитры, метаданные и путь вывода. iFFmpeg допускает разные параметры у разных файлов в одной очереди, поэтому пакетная обработка не требует, чтобы все задания были идентичны. Это удобно, но повышает цену невнимательности: если один файл выбран в списке, правки относятся именно к нему, а не обязательно ко всем остальным.

Что происходит после нажатия Convert

iFFmpeg не заменяет механизм FFmpeg собственным кодировщиком. Он проверяет настройки, строит командную строку, запускает внешний FFmpeg и считывает его вывод. Поэтому скорость, доступность аппаратных кодировщиков, поддерживаемые библиотечные энкодеры и часть синтаксиса зависят от подключённой сборки FFmpeg. Графический интерфейс снимает необходимость вручную помнить ключи, но сообщения об ошибках в конечном счёте приходят от FFmpeg; именно поэтому в программе предусмотрены окна FFmpeg Info, Detailed Info, FFmpeg log и просмотр сформированной команды.

Практически это означает, что одинаковый пресет на двух компьютерах может вести себя по-разному, если подключены разные сборки FFmpeg. В одной может присутствовать libx265, в другой — нет; одна может поддерживать VideoToolbox, другая быть собрана без него. При переносе настроек между системами стоит сначала убедиться, что нужные энкодеры и фильтры доступны, и только после этого искать ошибку в самом пресете.

Подключение FFmpeg и проверка сборки

Без рабочего бинарного файла FFmpeg iFFmpeg не сможет выполнять перекодирование. В настройках предусмотрен FFmpeg Manager, через который указывается или заменяется исполняемый файл. Исторически приложение также принимало бинарник перетаскиванием в окно и предлагало использовать его либо скопировать в своё служебное расположение. Такой способ удобен, когда FFmpeg уже скачан отдельно и пользователь не хочет вручную искать путь в файловой системе.

После подключения бинарника разумно открыть информацию о FFmpeg и проверить, что программа действительно видит нужную сборку. Наличие самого файла ещё не гарантирует требуемый функционал: сборки отличаются конфигурацией, внешними библиотеками и аппаратными возможностями. Для H.264 через libx264, HEVC через libx265, определённых аудиокодеков или отдельных фильтров нужны соответствующие компоненты. Если в выпадающем списке iFFmpeg есть настройка, а FFmpeg отвечает Unknown encoder, No such filter или похожей ошибкой, первым делом проверяют именно состав сборки.

В окне информации о FFmpeg полезно смотреть не только номер версии, но и перечень энкодеров, декодеров и форматов. iFFmpeg умеет собирать команды для большого количества режимов, однако графическая опция не может добавить отсутствующую в бинарнике библиотеку. Для воспроизводимого рабочего процесса лучше зафиксировать одну заведомо подходящую сборку и не менять её посреди большой серии задач, если нет конкретной причины.

Когда замена FFmpeg действительно нужна

Менять бинарник имеет смысл, если текущая сборка не содержит необходимого энкодера, падает на конкретном фильтре, неправильно распознаётся iFFmpeg или не поддерживает аппаратный путь, который требуется в работе. Сам факт появления более нового FFmpeg не означает, что замена улучшит существующий проект: у командной строки и отдельных опций со временем менялся синтаксис. Поэтому после замены стоит сделать короткий контрольный прогон на копии материала и посмотреть лог, особенно если используются сложные x264/x265-параметры, субтитры, фильтры или сегментация.

Если iFFmpeg сообщает, что переданный файл не является FFmpeg binary, проблема обычно находится на уровне самого файла: выбрана папка, архив, вспомогательная утилита вроде ffprobe вместо ffmpeg или бинарник неподходящей архитектуры. Следует распаковать загрузку, указать именно исполняемый файл ffmpeg и убедиться, что macOS разрешает его запуск. Права доступа и защитные механизмы системы могут мешать запуску даже корректного бинарника; в этом случае ошибка возникает раньше, чем начинается разбор медиапотоков.

Добавление файлов и анализ исходных потоков

После импорта iFFmpeg считывает контейнер, длительность, размер кадра, частоту кадров, видеокодек, аудиопараметры и доступные дорожки. В интерфейсе можно перейти к более подробной информации, если краткого набора недостаточно. Это особенно важно для MKV, MOV и транспортных потоков, где в одном файле часто находятся несколько аудиодорожек, несколько субтитров, служебные data streams и нестандартные метаданные.

Перед конвертацией полезно сверить три вещи: какие потоки действительно обнаружены, какой поток выбран как источник для каждого целевого элемента и нет ли внешних файлов, автоматически или вручную добавленных к заданию. Ошибки mapping часто выглядят как проблема кодека, хотя на деле FFmpeg получает ссылку на поток, которого нет, либо на дорожку другого типа. iFFmpeg упрощает выбор, но при сложном контейнере всё равно нужно понимать, что первая аудиодорожка не обязательно является нужным языком или основной программой.

Для файлов с переменной частотой кадров, повреждёнными временными метками или необычной структурой анализ может занимать больше времени. В настройках iFFmpeg предусмотрены параметры probe size и analyse duration, влияющие на глубину сканирования. Увеличение этих значений помогает, когда дорожка обнаруживается не сразу или потоковая структура сложная, но само по себе не исправляет повреждённый файл. Если подробная информация показывает противоречивую длительность, частоту кадров или временную базу, это сигнал сначала разобраться с источником.

iFFmpeg после добавления исходного видео с параметрами потока

Добавление нескольких файлов

Несколько исходников можно перетащить в окно за один приём. После анализа они появляются как отдельные задания, и для каждого разрешено выбрать собственный целевой профиль. Это не то же самое, что объединение файлов: обычный пакет обрабатывает элементы независимо и создаёт несколько результатов. Для склейки предусмотрены отдельные механизмы Concat passthru и Complex Filter, которые рассматриваются отдельно.

При большом наборе файлов полезно сначала настроить один типовой элемент, проверить его выход, а затем применять настройки к другим. В контекстных действиях iFFmpeg встречается Copy Settings to All; при использовании такой команды нужно помнить, что параметры потоков, субтитров и внешних аудиофайлов не всегда переносимы между источниками один к одному. Кодек и размер кадра копируются предсказуемее, чем mapping конкретной дорожки.

Контейнеры и кодеки: как не перепутать два уровня настроек

В iFFmpeg выбор формата фактически состоит как минимум из двух решений: контейнера и кодеков внутри него. MP4, MOV, Matroska, AVI, MPEG-TS, MPEG-PS, WebM, VOB и MXF определяют структуру итогового файла, допустимые типы дорожек и набор метаданных. H.264, HEVC, ProRes, DNxHD, DNxHR, MPEG-4 Part 2, VP8 или VP9 определяют способ хранения видеоданных. Аналогично AAC, AC3, MP3, FLAC, Opus, DTS и PCM относятся к аудиокодекам, а не к контейнерам.

Это разделение объясняет значительную часть ошибок вида Could not write header, codec not currently supported in container или Invalid argument. Кодировщик может существовать в FFmpeg, но выбранный контейнер не обязан принимать его поток. Например, комбинации, привычные для Matroska, не всегда допустимы в MP4; некоторые PCM-варианты естественнее использовать в MOV или MXF. iFFmpeg ограничивает меню в соответствии с известными сочетаниями, однако нестандартные параметры и меняющиеся возможности FFmpeg всё равно требуют проверки.

Для обычной доставки видео чаще всего выбирают MP4 или MOV с H.264/AAC, для архивов и многодорожечных файлов удобен Matroska, для монтажа — MOV с ProRes либо профессиональные профили DNxHD/DNxHR в поддерживаемом контейнере. WebM связан прежде всего с VP8/VP9 и совместимыми аудиокодеками. MPEG-TS полезен там, где важна транспортная структура, несколько программ или вещательные требования. Выбор стоит делать от требования принимающей системы, а не от расширения исходника.

MP4 и MOV

При работе с MP4 и MOV доступны типичные для экосистемы QuickTime параметры: major brand, timescale, метаданные, несколько аудиодорожек и главы. iFFmpeg умеет формировать H.264 и HEVC в этих контейнерах, а для HEVC предусмотрено использование тега hvc1, необходимого для совместимости с рядом средств воспроизведения macOS. Если файл с HEVC технически корректен, но не определяется как ожидается в проигрывателе или медиатеке, FourCC и фактическая структура потока — одни из первых вещей, которые стоит проверить.

MP4 предъявляет более строгие требования к типам субтитров и аудио, чем MKV. Нельзя считать, что любое содержимое исходного MKV получится просто скопировать в MP4. Часто видео можно оставить в passthru, AAC — тоже, а DTS, TrueHD или PGS-субтитры придётся перекодировать, исключить или заменить совместимым представлением. Поэтому перенос MKV в MP4 без потерь возможен только при совместимом наборе потоков; само изменение расширения ничего не решает.

Matroska и WebM

Matroska удобна для сложных файлов: нескольких звуковых дорожек, мягких субтитров и разных кодеков. В iFFmpeg для MKV встречаются H.264, HEVC, ProRes и другие поддерживаемые FFmpeg варианты, а также метаданные вроде названия аудиодорожки. Это делает контейнер подходящим для промежуточных копий, когда не хочется выбрасывать дополнительные потоки. Однако конечное устройство может поддерживать далеко не все комбинации, которые способен записать FFmpeg.

WebM в iFFmpeg связан с VP8/VP9 и параметрами этих энкодеров. Доступны управление качеством, CPU-used и дополнительные опции кодирования, а также альфа-канал при соответствующем кодеке, формате пикселей и сборке FFmpeg. Opus может использоваться в WebM, если это допускает подключённый FFmpeg. Для веб-доставки важнее всего заранее знать требования платформы: контейнер WebM сам по себе не гарантирует, что конкретный профиль VP9 или цветовое представление будет воспроизводиться в целевой среде.

MPEG-TS, AVCHD и MPEG-PS

Для транспортных контейнеров iFFmpeg предоставляет параметры, которые редко нужны в бытовом MP4: PID, muxrate, размер или структура PES, преобразование H.264/HEVC bitstream в Annex B и управление временными метками. Неверные значения здесь способны создать формально сгенерированный, но плохо совместимый поток. Если нет вещательного или аппаратного требования, лучше оставлять такие поля в автоматическом режиме и менять их только по спецификации целевого оборудования.

AVCHD/M2TS требует особенно аккуратного сочетания видеокодека, аудио и битстрим-фильтров. Для H.264 в транспортном потоке iFFmpeg умеет задействовать h264_mp4toannexb, а для HEVC — hevc_mp4toannexb. Эти преобразования не перекодируют изображение; они меняют представление битового потока для контейнера. Если копирование дорожки между MP4 и M2TS падает на заголовке или даёт файл, который не видит проигрыватель, стоит проверить именно такой уровень упаковки.

MXF, ProRes, DNxHD и DNxHR

Профессиональные рабочие процессы требуют не столько минимального размера, сколько предсказуемого декодирования и совместимости с монтажными системами. iFFmpeg умеет настраивать ProRes и семейство DNxHD/DNxHR, включая профили DNxHR HQ, HQX, SQ, LB и 444 в тех комбинациях, которые поддерживает FFmpeg. Для ProRes важны профиль и формат пикселей: 4444 требует другой цветовой структуры, чем обычный 422, а 10- или 12-битные режимы должны согласовываться с выбранным энкодером.

DNxHD жёстче привязан к допустимым разрешениям, частотам кадров и битрейтам. Ошибка при произвольном сочетании 720p/1080p, нестандартного FPS и выбранного профиля может быть следствием самого стандарта, а не интерфейса. DNxHR гибче для современных разрешений, но также имеет профили с разной цветовой глубиной и субдискретизацией. Если задача — промежуточный файл для монтажа, лучше отталкиваться от требований NLE и целевого профиля, а не вручную максимизировать все числовые параметры.

Окно Video Stream iFFmpeg с выбранным кодеком ProRes

Настройки H.264: качество, битрейт и структура GOP

Для H.264 iFFmpeg предоставляет базовые параметры и расширенные настройки x264. На верхнем уровне выбираются размер кадра, FPS, формат пикселей, режим качества или битрейта. В расширенной панели доступны профиль, preset, tune, GOP, B-frames, параметры адаптивного квантования, motion estimation и другие свойства, которые FFmpeg передаёт x264. Большинство задач не требует менять десятки полей: правильно выбранный preset и понятная стратегия качества обычно полезнее случайного набора максимальных значений.

Если важна визуальная стабильность при переменном размере файла, логичен режим постоянного качества CRF. Чем ниже CRF, тем выше качество и тем больше ожидаемый поток; универсального идеального числа нет, потому что сложность материала различается. Если важен конкретный средний битрейт или лимит канала, используют битрейтные режимы, при необходимости с maxrate и bufsize. Для жёсткого целевого размера двухпроходное кодирование может распределить биты по ролику точнее, но требует дополнительного прохода.

Опции profile и level не нужно завышать без причины. Профиль определяет набор инструментов кодирования, а level — ограничения по разрешению, частоте кадров, буферу и битрейту. Установка уровня, не соответствующего фактическому потоку, не делает файл лучше и способна ухудшить совместимость. Если устройство требует конкретный профиль, сначала задают его, затем проверяют разрешение, FPS и битрейт. Автоматический выбор безопаснее, когда спецификация приёмника неизвестна.

GOP, keyframes и B-frames

GOP определяет расстояние между ключевыми кадрами и влияет на seek, монтажность, потоковую доставку и эффективность сжатия. В iFFmpeg есть автоматический расчёт GOP и поля keyint/min-keyint. Короткий GOP облегчает случайный доступ и может быть нужен сегментированным форматам, но увеличивает долю дорогих I-кадров. Очень длинный GOP эффективнее по размеру, однако сложнее для монтажа и некоторых плееров. Правильное значение связано с FPS и требованиями платформы, поэтому число следует задавать осмысленно.

B-frames повышают эффективность сжатия, но увеличивают сложность декодирования и влияют на задержку. Для архивного или обычного файлового видео это обычно приемлемо; для систем с жёсткими ограничениями могут требоваться другие параметры. В iFFmpeg присутствуют настройки количества B-frames и связанные x264-параметры, однако ручное изменение каждого поля оправдано только тогда, когда известна причина. Если исходный пресет уже удовлетворяет устройству, лучше менять один параметр за раз и проверять результат.

HEVC и x265

HEVC позволяет получить более эффективное сжатие, но сочетает больше условий совместимости: наличие x265 или аппаратного кодировщика, поддерживаемый профиль, формат пикселей, битность, тег контейнера и возможности проигрывателя. iFFmpeg предоставляет пресеты H.265/HEVC, расширенные опции x265, 10- и 12-битные режимы в соответствующих конфигурациях и параметры HDR/WCG. При этом наличие поля в интерфейсе не означает, что любой FFmpeg-бинарник или любое устройство примет выбранный режим.

Для 10-битного HEVC обычно требуется подходящий пиксельный формат, например семейство YUV420p10le, и сборка энкодера с нужной глубиной. Если FFmpeg отвечает ошибкой о несовместимом pixel format, нужно не только переключить профиль, но и проверить фактический входной формат и доступные форматы энкодера. Принудительный 10-битный вывод из 8-битного источника не восстанавливает потерянную градацию; он лишь определяет внутреннее представление результата.

В iFFmpeg присутствуют x265-поля для цветовых примарий, белой точки, минимальной и максимальной яркости, MaxCLL/MaxFALL и сигнализации HDR-параметров в SEI. Эти настройки предназначены для материала, параметры которого уже известны. Ввод случайных HDR-значений в SDR-источник не превращает его в HDR и может привести к неверному отображению. Правильный порядок — определить цветовые характеристики источника, при необходимости выполнить управляемое преобразование, а затем корректно маркировать результат.

hvc1 и совместимость MOV/MP4

Для HEVC в MOV/MP4 iFFmpeg умеет записывать FourCC hvc1. Это деталь упаковки, но она практична: некоторые компоненты macOS ожидают именно hvc1 для нормального распознавания HEVC. Если результат воспроизводится в одном плеере, но не открывается в другом системном приложении, стоит проверить не только кодек, но и тег. При этом смена FourCC не исправит поток, закодированный в неподдерживаемом профиле или битности.

Размер кадра, пропорции и частота кадров

Поля Video Size, Frame Rate и Aspect Ratio образуют связанную группу. Размер кадра задаёт фактическое количество пикселей, aspect ratio описывает геометрию отображения, а FPS определяет временную дискретизацию. Случайная правка одного параметра может изменить изображение не так, как ожидается: например, 720×576 может отображаться как 4:3 или 16:9 в зависимости от SAR/DAR, а простое изменение ширины не всегда должно сопровождаться квадратным пикселем.

Если цель — уменьшить 4K до 1080p, обычно достаточно выбрать 1920×1080 или использовать Scale с сохранением пропорций. Если исходник имеет другое соотношение сторон, принудительное растягивание до 16:9 даст геометрические искажения. Вместо этого используют сохранение aspect ratio, padding или crop — в зависимости от того, нужны ли поля по краям или допустимо обрезать часть изображения. iFFmpeg предоставляет отдельные фильтры и предварительный просмотр для crop/padding.

Изменение FPS требует понимания источника. Перевод 25 fps в 30 fps простым дублированием кадров не создаёт новую детализацию движения; перевод 60 в 30 может удалять кадры. Для более плавной интерполяции в iFFmpeg есть MInterpolate с настройками motion estimation и обнаружения смен сцен, но это уже вычислительно более сложный фильтр и он может создавать артефакты на быстрых перекрытиях, мелких деталях и резких склейках.

Set SAR и Set DAR

Фильтры Set SAR и Set DAR позволяют отдельно задавать соотношение сторон пикселя и отображаемого кадра. Они полезны при анаморфном видео и материалах из вещательных или DVD-цепочек. Важно отличать метаданные пропорций от физического ресайза: Set DAR может сообщить проигрывателю, как показывать кадр, но не меняет само число пикселей. Если целевая система игнорирует такую сигнализацию, может понадобиться реальное масштабирование до квадратного пикселя.

Когда геометрия после конвертации выглядит растянутой, диагностику начинают с четырёх значений: исходная ширина и высота, исходный SAR/DAR, целевой размер и целевой SAR/DAR. После этого становится понятно, достаточно ли исправить метаданные или нужно применять Scale. Попытка одновременно менять и размер, и SAR, и DAR без расчёта часто приводит к двойной коррекции.

Формат пикселей, цвет и глубина

Pixel Format — один из самых недооценённых параметров. Кодек может поддерживать несколько форматов: 4:2:0, 4:2:2, 4:4:4, 8-, 10- или 12-битные варианты, иногда RGB или альфа-канал. iFFmpeg даёт выбирать формат пикселей и содержит отдельный Pixel Format filter, однако реально допустимый набор зависит от энкодера. Если выбранный формат не поддерживается, FFmpeg либо откажется кодировать, либо попытается преобразовать его в доступный вариант, о чём обычно сообщает в логе.

Для обычного H.264, предназначенного для широкого воспроизведения, YUV 4:2:0 остаётся наиболее совместимым решением. Для профессионального промежуточного файла могут потребоваться 4:2:2 или 4:4:4. ProRes 4444 предполагает иной набор цветовых данных и может нести альфа-канал, тогда как профиль ProRes 422 устроен иначе. Выбор более тяжёлого пиксельного формата не улучшает исходник автоматически: 8-битное 4:2:0 видео не приобретает утраченную цветовую информацию после записи в 12-битное 4:4:4.

В iFFmpeg есть настройки Color Primaries, Color Space, Color Range и transfer characteristics, а также фильтр Color Space. Они нужны, когда требуется явно определить входные свойства или преобразовать цветовое представление. Разница между limited и full range особенно заметна при неправильной маркировке: чёрный может стать серым или, наоборот, тени и света будут обрезаны. Поэтому параметры диапазона нельзя выбирать по принципу full лучше. Они должны соответствовать реальным уровням источника и требованиям результата.

BT.2020, HDR и цветовые метаданные

Поддержка BT.2020 и расширенных полей x265 позволяет сохранять корректную сигнализацию широкого цветового охвата и HDR-метаданных, когда они действительно присутствуют в исходном материале. iFFmpeg может передавать primaries, transfer characteristics, white point, mastering display и показатели яркости. Но эти поля — описание и часть цепочки кодирования, а не автоматическая цветокоррекция. Если требуется преобразование между цветовыми пространствами, используют соответствующий фильтр и известные входные характеристики.

Практическое правило: если задача — сохранить уже корректный HDR-мастер, сначала проверяют сведения о входе и используют режимы, сохраняющие или явно задающие его цветовые метаданные. Если задача — получить SDR, нужен осмысленный tone mapping, а не простое удаление HDR-флагов. Если источник не имеет надёжных цветовых тегов, перед автоматизацией лучше определить их отдельно; иначе одни и те же числовые значения пикселей будут интерпретироваться по-разному.

Видео-фильтры iFFmpeg

Фильтры в iFFmpeg добавляются к конкретному заданию и становятся частью filter chain FFmpeg. Именно поэтому включение фильтра почти всегда означает декодирование и повторное кодирование видеопотока: прямой passthru не оставляет места для изменения пикселей. В интерфейсе есть десятки фильтров — масштабирование, crop, padding, поворот, deinterlace, detelecine, резкость и размытие, стабилизация, watermark, вывод текста и таймкода, изменение цветовых параметров, реверс, Frame Steps, Set SAR/DAR, MInterpolate и другие.

Порядок фильтров имеет значение. Обрезать кадр до масштабирования и масштабировать до обрезки — не одно и то же. Аналогично, наложенный watermark может иметь другой размер и координаты в зависимости от того, выполняется он до или после Scale. iFFmpeg формирует цепочку из выбранных элементов и в большинстве типовых сценариев избавляет от ручного синтаксиса, но при сложных сочетаниях полезно открыть итоговую commandline и убедиться в порядке операций.

Панель Advanced iFFmpeg с General Options и настройкой Scaler

Crop и Padding

Crop удаляет края изображения, padding добавляет поля. В iFFmpeg есть автоматическое определение crop и предварительный просмотр, а у padding — режимы для приведения к требуемому соотношению сторон. Автоопределение удобно для чёрных рамок, но перед длинной очередью его стоит проверить на нескольких сценах: тёмное содержимое кадра иногда можно принять за постоянную границу. Для нестабильных рамок один фиксированный crop не всегда подходит всему фильму.

Padding предпочтителен, когда нельзя терять изображение. Например, вертикальный ролик можно вписать в горизонтальный кадр с полями, не обрезая верх и низ. Если фон должен быть не просто одноцветным, в iFFmpeg есть Background Blur: исходное изображение можно использовать как основу для размытого заполнения, а центральный кадр оставить резким. Такой приём полезен для социальных форматов, но итоговый размер и ориентацию всё равно задают отдельно.

Deinterlace и Detelecine

Для чересстрочного видео iFFmpeg предоставляет deinterlace-фильтры, включая YADIF в соответствующих сборках FFmpeg. Deinterlace нужен только для настоящего interlaced-источника; применение к прогрессивному видео уменьшает вертикальную детализацию или добавляет ненужную обработку. Прежде чем включать фильтр, следует посмотреть field order и фактическое движение по полям. Ошибка Top Field First/Bottom Field First может проявиться характерным дёрганием движения.

Detelecine решает другую задачу: удаляет телесин-паттерн и восстанавливает исходную кадровую структуру, когда киношный материал был преобразован для телевизионной частоты. В iFFmpeg присутствуют параметры First Field, Pattern и Start Frame. Это не универсальный фильтр для любого 29.97 fps источника. Если материал действительно снят в 29.97p или 59.94i без телесина, применение detelecine даст неверный ритм.

Резкость, размытие и стабилизация

Фильтры sharpen и blur полезны как точечные коррекции, но их легко переусилить. Резкость не возвращает отсутствующие детали и при высоких значениях подчёркивает шум и контуры компрессии. Размытие может подавлять мелкий шум, но уменьшает фактическую детализацию. В iFFmpeg есть также Smart Blur и Color EQ Adjustment, где можно отдельно работать с яркостной и цветовой составляющей, контрастом, яркостью, насыщенностью и гаммой.

Video Stabilisation использует анализ движения и набор параметров вроде shakiness, accuracy, stepsize, smoothing, допустимого смещения, угла и поведения краёв. Стабилизация требует пространства для компенсации движения, поэтому нередко сопровождается crop или zoom. Слишком агрессивные настройки могут дать плавающие границы или резиновую геометрию. Для важного материала стоит сначала обработать короткий фрагмент с типичным движением камеры.

Watermark, Draw Text и Render Timecode

Watermark накладывает изображение поверх видео. iFFmpeg поддерживает позиционирование и смещения по X/Y; размер водяного знака должен быть соразмерен целевому кадру. Если сначала уменьшить видео, а затем использовать координаты, рассчитанные для исходного 4K, логотип окажется не там, где ожидалось. Оптимально определить итоговое разрешение, затем настроить положение и только после этого сохранить пресет.

Draw Text и Render Timecode предназначены для служебных меток, названия файла, даты, номера кадра или временного кода. Параметры включают позицию по горизонтали и вертикали, шрифт и формат отображения. В производственном процессе такие фильтры удобны для просмотровых копий: можно автоматически создавать материал с номером кадра или timecode, не меняя мастер. Для чистовой версии фильтр нужно отключить, иначе текст будет прожжён в изображение.

LUT 3D и Color Space

LUT 3D применяется, когда есть конкретный LUT-файл и известна его роль в цветовом процессе. iFFmpeg позволяет указать LUT3D и передать его фильтру FFmpeg. Нельзя считать любой LUT средством улучшения картинки: технический LUT для преобразования гаммы и творческий LUT решают разные задачи. Перед пакетной обработкой важно проверить, в каком цветовом пространстве ожидается вход LUT и что получится на выходе.

Color Space предоставляет явные параметры входных и выходных primaries, transfer, range и format, а также режимы адаптации белой точки и dithering. Он полезен, если метаданные исходника известны, но требуется привести изображение к другой спецификации. Если вход размечен неверно, автоматическое преобразование на основе этих тегов тоже будет неверным, поэтому при сомнении сначала сверяют медиаданные и эталонный просмотр.

Frame Steps, Frame Rate и MInterpolate

Frame Steps выбирает каждый N-й кадр и может использоваться для ускоренных последовательностей или прореживания материала. Отдельный Frame Rate filter меняет временную сетку. MInterpolate создаёт промежуточные кадры на основе оценки движения; в iFFmpeg для него доступны режим интерполяции, motion estimation, размер макроблока, параметры поиска и обнаружения смен сцен. Эти инструменты решают разные задачи и не являются взаимозаменяемыми.

Если нужен обычный перевод 50 fps в 25 fps, достаточно корректного изменения частоты с удалением половины кадров. Если требуется получить 50/60 fps из 24/25 fps с визуально более плавным движением, тогда рассматривают интерполяцию, принимая возможность артефактов. Если задача — timelapse, чаще нужен Frame Steps или SetPTS, а не motion interpolation. Выбор фильтра должен соответствовать характеру изменения времени.

Rotate, orientation metadata и реверс

Поворот можно реализовать как фактическое преобразование кадра или оставить ориентацию на уровне метаданных, если контейнер и проигрыватель это корректно понимают. iFFmpeg умеет учитывать rotation metadata и предоставляет фильтр Rotate. Для надёжной доставки на устройства с разной поддержкой метаданных безопаснее физически повернуть кадр и записать правильный размер, но это потребует повторного кодирования.

Video Reverse и Audio Reverse позволяют перевернуть поток по времени. Такие фильтры требуют хранения и перерасчёта значительного объёма данных, поэтому на длинном материале они могут быть ресурсоёмкими. Если нужен обратный ход только короткой сцены, разумнее сначала обрезать нужный диапазон, а затем применять реверс. Это уменьшает объём обработки и упрощает синхронизацию.

Настройки звука

Аудиопанель iFFmpeg работает по той же логике, что и видео: сначала выбирается целевой кодек, затем базовые параметры и расширенные опции. Среди используемых форматов встречаются AAC, AC3, MP3, FLAC, Opus, DTS и PCM-варианты, но конкретная комбинация определяется контейнером и сборкой FFmpeg. Для каждого потока задаются bitrate, sample rate, число каналов или channel layout, а при необходимости добавляются аудиофильтры.

При простом просмотре важно не завышать параметры без причины. Перекодирование MP3 128 кбит/с в AAC 320 кбит/с не восстановит удалённую информацию; оно лишь создаст более крупный файл после ещё одного поколения потерь. Если исходный аудиопоток совместим с целевым контейнером и обработка звука не нужна, лучше использовать passthru. Перекодирование оправдано при несовместимости, изменении каналов, нормализации, фильтрации или требованиях целевой платформы.

Sample rate и channel layout

Частоту дискретизации лучше сохранять, если у проекта нет требования к другому значению. 44,1 кГц типична для музыки, 48 кГц — для видео, но сам по себе пересчёт между ними не улучшает качество. iFFmpeg использует возможности FFmpeg resampler и содержит Audio Resample с выбором dithering, filter size, cutoff и синхронизации по временным меткам. Эти поля нужны для контролируемого преобразования, а не как обязательные улучшатели.

Channel layout определяет не просто количество каналов, но и их назначение. Стерео, 5.1 и 7.1 имеют конкретную раскладку; при произвольном downmix можно получить неверный баланс центра, окружения или LFE. iFFmpeg поддерживает Channel Mapping и выбор отдельных каналов, что позволяет явно назначить выход. Для сложного многоканального материала желательно сверять раскладку по Media Info и проверять тестовый файл на системе с соответствующим числом каналов.

Audio Merge и внешние дорожки

Audio Merge объединяет несколько аудиопотоков в один, а выбор external audio позволяет добавить звук из отдельного файла. iFFmpeg предоставляет несколько селекторов входных audio streams и поля внешних файлов, поэтому можно собирать сложную схему без ручного -map. Это полезно, например, когда видео уже готово, а многоканальный или альтернативный звук экспортирован отдельно.

При внешнем звуке важно контролировать длительность и временное смещение. Даже если два файла формально имеют одинаковую длину, стартовая метка может отличаться. В iFFmpeg есть Audio Time Offset, а в фильтрах и общих параметрах — средства работы с PTS. Если рассинхронизация постоянна на всём ролике, помогает смещение; если она постепенно нарастает, причина обычно в разных временных базах или частотах, и простого offset недостаточно.

Нормализация, громкость и динамика

Среди аудиофильтров есть Adjust Volume, Peak Normalisation и Dynamic Normalize. Простое увеличение gain подходит, когда известно, насколько нужно изменить уровень, но может вызвать clipping. Опция no gain clipping и нормализация помогают удержать пики в допустимом диапазоне. Dynamic Normalize меняет усиление во времени и полезен для материалов с заметно различающейся громкостью, хотя он может изменить исходную динамику.

В расширенных опциях встречаются Target RMS, Target peak, Maximum gain factor, Compress factor и параметры окна Gaussian filter. Эти значения нужно трактовать как параметры конкретного алгоритма, а не универсальные нормы громкости. Если проект должен соответствовать вещательному стандарту по LUFS/LKFS, лучше использовать инструменты и измерение, предназначенные именно для loudness-нормализации, и проверять готовый файл отдельным анализатором.

Passthru: когда можно обойтись без перекодирования

Passthru означает прямое копирование выбранного потока в новый контейнер без декодирования и повторного кодирования. Для видео это позволяет сохранить исходное качество и обработать файл значительно быстрее, для аудио — избежать лишнего поколения потерь. В iFFmpeg режим доступен отдельно для видео и аудио, а PassThru Wizard помогает оценить, какие дорожки можно перенести в выбранный контейнер. Удобство мастера не отменяет правил muxer: копируемый кодек обязан поддерживаться целевым контейнером.

Самый типичный сценарий — заменить только аудио. Если H.264-видеопоток уже подходит, его оставляют в Video Passthru, а DTS или другой несовместимый звук перекодируют в AAC/AC3. Обратная ситуация тоже возможна: аудио копируется, а видео уменьшается или переводится в другой кодек. Такая выборочная обработка особенно полезна в больших файлах, потому что экономит время и не ухудшает те дорожки, которые менять не требовалось.

Passthru несовместим с фильтрами, меняющими соответствующий поток. Нельзя одновременно скопировать видео бит-в-бит и применить crop, watermark, deinterlace или scale: для фильтрации поток должен быть декодирован. Аналогично, нормализация или изменение числа каналов исключают аудио passthru. iFFmpeg проверяет наличие фильтров при переключении в прямое копирование, но логическая проверка полезна и со стороны пользователя.

Remuxing и битстрим-фильтры

Перепаковка контейнера без перекодирования часто называется remux. Она не равна простому переименованию расширения: FFmpeg читает структуру исходного контейнера и записывает допустимые потоки в новую. При таком переносе могут понадобиться bitstream filters, например преобразование H.264 или HEVC между length-prefixed и start-code представлениями. iFFmpeg содержит соответствующие опции и умеет добавлять их для транспортных контейнеров.

Если remux завершается мгновенно, но выходной файл перематывается неправильно или не открывается в конкретном проигрывателе, следует проверить временные метки, индекс и параметры контейнера. При объединении iFFmpeg отдельно дорабатывал Concat passthru, чтобы итоговый файл был seekable. Быстрая операция не гарантирует совместимость, если исходные таймстампы повреждены или выбранный контейнер ожидает другую структуру потока.

Субтитры: мягкие дорожки и прожиг

iFFmpeg поддерживает два принципиально разных способа работы с субтитрами. Soft subtitles записываются отдельной дорожкой и могут включаться или отключаться в плеере. Hardburn subtitles становятся частью изображения и видны всегда. Для мягких субтитров кодек и формат должны поддерживаться контейнером; для прожига FFmpeg рендерит текст или графические субтитры поверх каждого кадра, поэтому видео обязательно перекодируется.

В качестве источника можно использовать встроенную дорожку или внешний файл. iFFmpeg проверяет субтитры, умеет подхватывать связанные файлы и предоставляет Subtitles Wizard. Для текстовых субтитров важно правильно выбрать charset, особенно если файл не в UTF-8. Ошибочная кодировка проявляется кракозябрами, а не проблемой видеокодека; в настройках предусмотрен Default Subs Charset Encoding.

Контейнер MP4/MOV обычно требует более ограниченный набор мягких субтитров, чем Matroska. PGS и DVD-подобные графические форматы удобнее сохранять в MKV или прожигать, если целевая система не умеет их воспроизводить. iFFmpeg дорабатывал обработку PGS, DVB_Subtitles и mov_text, но реальная возможность копирования зависит от контейнера и сборки FFmpeg. Ошибка failed opening encoder stream при добавлении субтитра часто указывает именно на несовместимое кодирование или mapping.

Hardburn и синхронизация

При прожиге субтитров iFFmpeg добавляет их в видеочасть цепочки. Если одновременно включена обрезка, программа учитывает временные метки и может добавлять Video/Audio PTS filters, чтобы текст оставался синхронным с новым началом. Если после trim субтитры запаздывают на одинаковую величину, нужно проверить, с какой временной точки начинается внешний файл и не сохранены ли исходные timestamps.

Стиль текста, фон, позиция и кодировка задаются до кодирования. Для ASS/SSA часть оформления может находиться внутри самого файла; принудительное переопределение способно изменить задуманный вид. Для SRT стиль проще и чаще задаётся средствами фильтра. Перед многократным запуском стоит проверить короткий фрагмент с длинными строками, курсивом, переносами и нелатинскими символами.

Извлечение субтитров и Closed Captions

iFFmpeg умеет извлекать субтитровые дорожки и содержит отдельное действие Extract Subtitles. Возможность получить файл без перекодирования зависит от типа дорожки: текстовую дорожку проще сохранить в родном формате, графические PGS/DVD subtitles остаются графическими. В более поздних функциях также присутствует извлечение Close Captions. Если цель — редактировать текст, графический поток сначала потребует отдельного распознавания, которое iFFmpeg сам не выполняет.

Несколько аудио-, видео- и служебных потоков

Одна из сильных сторон iFFmpeg — работа не только с одним видео и одним звуком. В задании можно добавлять несколько аудиодорожек, субтитров и других потоков, назначать язык, имя дорожки и default-статус. Для Matroska это особенно удобно: можно сохранить оригинал, дубляж и комментарии в одном контейнере. Однако порядок потоков и флаги должны быть продуманы, иначе проигрыватель выберет не тот язык по умолчанию.

При нескольких аудиопотоках важно различать добавить дорожку и смешать дорожки. Две отдельные audio streams останутся переключаемыми, Audio Merge сведёт выбранные входы в один поток, а Channel Mapping изменит распределение каналов внутри одной дорожки. Это три разных операции. Например, оригинал и перевод обычно сохраняют отдельными дорожками; микс четырёх моносигналов в многоканальный поток требует Merge/Mapping.

Data streams и вложения поддерживаются контейнерами по-разному. В iFFmpeg встречается Copy all data streams, но перенос служебных данных нужен только тогда, когда целевой контейнер их понимает и они действительно используются. Слепое копирование всех потоков из MPEG-TS или MKV в MP4 может привести к ошибке muxer. В спорных случаях надёжнее явно выбрать нужные видео, аудио и субтитры.

Обрезка по времени

Trimming в iFFmpeg задаёт начало и конец обрабатываемого участка. В интерфейсе есть временная шкала и миниатюры, а значения можно уточнять стрелками. Для перекодирования точность определяется временной базой и декодированием кадров, поэтому начало можно получить близко к нужному кадру. При прямом копировании всё сложнее: многие кодеки могут безопасно начинаться только с ключевого кадра, и frame-accurate cut без перекодирования не гарантируется.

Если нужна точная монтажная граница, лучше перекодировать хотя бы участок либо весь выход. Если важна скорость и допускается сдвиг к ближайшему keyframe, passthru trimming может быть приемлем. Разница особенно заметна на H.264/HEVC с длинным GOP. Внутренний предварительный просмотр помогает выбрать диапазон, но окончательный файл следует проверить на первых и последних секундах: нет ли зависшего кадра, рассинхронизации звука или неверного timestamp.

При обрезке многодорожечного файла стоит убедиться, что одинаковый временной диапазон применяется к связанным аудио и субтитрам. Внешняя дорожка может начинаться с нулевой метки, которая не совпадает с началом исходного контейнера. Опции Copy Timestamps, Shift input timestamps to start at zero и PTS-фильтры предназначены для таких ситуаций, но их нельзя включать механически сразу все: сначала определяют, что именно неверно в временной шкале.

Объединение файлов

Для склейки в iFFmpeg предусмотрено два принципиальных пути: Concat passthru и объединение через Complex Filter. Concat passthru быстрый, потому что не перекодирует потоки, но требует одинаковой и совместимой структуры: кодеки, основные параметры, временная база и контейнерные условия должны совпадать. Если один фрагмент 1920×1080 H.264, а другой 1280×720 HEVC, прямое объединение без преобразования не является корректной задачей.

Complex Filter позволяет привести исходники к общей структуре и склеить их после декодирования. Это медленнее, зато можно масштабировать, переупаковывать звук и решать различия между частями. Здесь особенно важны одинаковый FPS, размер кадра, pixel format и схема аудио на выходе. iFFmpeg автоматизирует составление фильтра, но если FFmpeg сообщает о несогласованных форматах на входах concat, нужно проверить именно эти параметры.

Для длинной серии клипов полезно заранее нормализовать материал к одному промежуточному профилю, а затем выполнять concat. Такой двухэтапный процесс иногда надёжнее, чем пытаться в одной огромной команде согласовать десятки разнотипных входов. Если все файлы получены одной камерой и имеют одинаковые параметры, наоборот, Concat passthru может дать быстрый результат без потери качества.

Когда склейка ломает перемотку

Проблемы seek после объединения обычно связаны с индексом, timestamp или некорректными границами частей. Если итог воспроизводится последовательно, но плохо перематывается, стоит посмотреть лог на предупреждения о non-monotonous DTS, invalid timestamp и подобных сообщениях. Перекодирование в новый поток часто устраняет повреждённую временную структуру, тогда как чистый passthru переносит её вместе с данными.

Главы и метаданные

Для MP4, MOV и MKV iFFmpeg предоставляет редактор глав: можно добавлять и удалять главы, менять названия и время, автоматически создавать метки с заданным интервалом, кодировать только выбранную главу или разбивать материал по главам. Это удобно для длинных записей, концертов и лекций, где глава — навигационный элемент, а не отдельный файл.

Метаданные можно добавлять и редактировать отдельно от кодирования аудио и видео. В iFFmpeg встречаются стандартные поля и возможность задавать собственные имена ключей, а для Matroska — названия аудио- и субтитровых дорожек. При переносе из одного контейнера в другой не все ключи имеют прямой эквивалент. Если важны теги, главы и языковые коды, их нужно проверять в итоговом контейнере, а не предполагать, что любое поле перенесётся автоматически.

Опция discard metadata полезна, когда исходник несёт нежелательные теги, но она может удалить и нужную служебную информацию. Аналогично автоматическая установка Encode Date/Tagged Date меняет часть метаданных по правилам программы. Для архивного процесса лучше заранее решить, что сохранять, что заменять и что удалять, особенно если файл дальше попадает в DAM, медиатеку или монтажную систему.

Экспорт кадров, анимированный GIF и видео из изображений

iFFmpeg умеет экспортировать фильм в PNG, BMP, JPG, TIFF и TGA в поддерживаемых режимах, выбирать каждый N-й кадр или только ключевые кадры и задавать размер. Это полезно для контактных листов, превью, технической выборки или подготовки последовательности. Формат изображения выбирают по задаче: JPG компактнее, PNG/TIFF лучше подходят, когда важно избежать дополнительной потери качества или сохранить прозрачность там, где она поддерживается.

Обратная операция Images to Movie собирает последовательность PNG/BMP/JPG и других поддерживаемых изображений в видеопоток. Частота кадров задаётся явно; от неё зависит длительность. Если имена файлов сортируются не в ожидаемом порядке, последовательность будет собрана неверно, поэтому перед импортом стоит привести нумерацию к однозначному виду. Для анимации из рендера полезно заранее проверить, что все кадры имеют одинаковые размеры и цветовое представление.

Animated GIF в iFFmpeg имеет отдельные расширенные настройки: loop count, задержку и работу с прозрачностью. GIF ограничен палитрой и не подходит для фотографического видео высокого качества; его используют для коротких иллюстраций. Если нужен современный анимированный материал для веба, WebM/MP4 часто эффективнее, но GIF остаётся удобен там, где требуется простая встраиваемая анимация без отдельного видеоплеера.

Пакетное кодирование

iFFmpeg умеет обрабатывать несколько заданий и исторически позволял запускать до восьми batch-задач одновременно. Параллелизм не всегда ускоряет общий процесс: два тяжёлых x265-кодирования могут конкурировать за CPU, память и диск. Для длинных проектов лучше выбирать число одновременных задач по реальной нагрузке. Если система начинает активно использовать swap или каждый процесс резко замедляется, выгоднее уменьшить параллельность.

Пакетный режим полезен, когда файлы разные: каждому можно назначить свой пресет, фильтры и выход. Для однородной серии удобно применить настройки к нескольким заданиям, настроить prefix/suffix и правило выходной папки. Параметр destination same as source экономит ручные действия, но при автоматизации нужно исключить конфликт имён и риск записи поверх исходного файла.

Статус очереди показывает, что уже кодируется, что ожидает запуска и где возникла ошибка. Если один элемент падает, стоит сохранить его лог отдельно, а не перезапускать всю очередь вслепую. Ошибка может быть специфична для одного источника — повреждённого контейнера, необычной дорожки или недоступного внешнего файла — тогда остальные задания не нуждаются в изменении.

Watch Folder: автоматическая обработка папки

Watch Folder превращает заданную папку во входную точку: когда туда помещается новый медиафайл, iFFmpeg применяет связанный профиль и запускает обработку. В программе есть Watch Folder Monitor с журналом и отдельные параметры включения наблюдаемой папки. Такой режим удобен для рутинных просмотровых копий, прокси или технических транскодов, когда оператору не требуется каждый раз открывать окно и добавлять файл вручную.

Автоматизация требует более строгих правил, чем ручной запуск. Пресет должен быть универсален для ожидаемого типа входов, выходная папка — однозначна, а имена результатов — не конфликтовать. Если в наблюдаемую папку попадают файлы с разным числом аудиодорожек, нестандартными субтитрами или неожиданным разрешением, жёстко заданный mapping может дать ошибку. Поэтому сначала проверяют профиль на репрезентативной выборке источников.

Не стоит направлять результат обратно в ту же наблюдаемую папку без продуманного фильтра, иначе новый файл может восприниматься как очередной вход. Аналогично, файл, который ещё копируется по сети, может быть замечен раньше завершения передачи. Для производственной схемы безопаснее использовать отдельные input/output-каталоги и переносить в input только полностью готовые файлы.

Сегменты и MPEG-DASH

iFFmpeg умеет создавать сегментированные результаты и содержит поддержку MPEG DASH и WebM DASH. В параметрах встречаются Create DASH files, автоматическое создание manifest, отдельные chunk-файлы, minimum segment duration и удаление промежуточных не-DASH файлов. Также поддерживаются файлы .m4s. Эта функциональность отличается от обычного сохранить MP4: результат представляет набор сегментов и описывающий их manifest.

Для сегментации ключевое значение имеет структура GOP. Если сегменты должны начинаться с независимого ключевого кадра, GOP и частота ключевых кадров должны согласовываться с продолжительностью сегмента. Иначе плееру придётся зависеть от данных из предыдущего сегмента или FFmpeg будет резать в неудобных местах. Перед кодированием нужно знать требования используемого DASH-плеера или платформы к codecs string, segment duration и профилю.

Manifest следует проверять вместе с созданными сегментами. Отсутствующий chunk, неправильный путь или несогласованная длительность делает весь набор непригодным, даже если отдельный .m4s содержит валидные данные. iFFmpeg автоматизирует генерацию, но не заменяет проверку средствами того же окружения, где поток будет публиковаться.

Аппаратное кодирование и декодирование

В iFFmpeg предусмотрены H.264 и H.265 аппаратные пути через VideoToolbox, а также варианты аппаратного декодирования Apple VDA/VideoToolbox. Для работы требуется FFmpeg, собранный с соответствующей поддержкой, и совместимое оборудование. Само наличие пункта VideoToolbox в интерфейсе не гарантирует, что конкретный профиль, размер, pixel format и битрейт будут приняты железом.

Аппаратное кодирование обычно выбирают ради скорости и меньшей нагрузки на CPU. Качество при том же номинальном битрейте может отличаться от программного x264/x265, потому что это другой энкодер с другими алгоритмами и параметрами. Для архивного мастера или очень требовательного битрейта стоит сравнивать визуальный результат, а для быстрых прокси или массового транскода VideoToolbox часто удобнее.

В настройках iFFmpeg есть разрешение перейти к software encoding, если аппаратное кодирование не удалось. Это полезно для очереди: один неподдерживаемый файл не обязательно должен останавливать процесс. Но в контролируемом производстве такой fallback нужно учитывать, потому что два файла, выполненные разными энкодерами, могут отличаться по качеству, скорости и размеру при одинаково выглядящем пресете.

Как понять, что аппаратный режим не запустился

Смотрите FFmpeg log. Типичные признаки — сообщение об отсутствии encoder, невозможности создать hardware context, неподдерживаемом pixel format или отказе инициализации VideoToolbox. Если включён software fallback, итоговый файл может всё же появиться; поэтому одной успешной записи результата недостаточно, если принципиально важно использовать аппаратный путь. В логе видно, какой энкодер реально выбран.

Предпросмотр, информация о файле и журналы

iFFmpeg позволяет просматривать материал и контролировать техническую информацию до запуска. Для диагностики важнее всего три уровня: краткие параметры в очереди, подробная Media Information и лог FFmpeg. Первый быстро показывает разрешение, длительность и основные дорожки, второй помогает разобрать структуру контейнера, третий фиксирует фактическую команду и сообщения во время кодирования.

Если результат неожиданно отличается от настроек, сначала проверяют не интерфейс, а строку запуска: какой encoder передан, какой mapping используется, какие filter_complex или vf/af включены, какой muxer выбран. iFFmpeg позволяет открыть и отредактировать commandline перед запуском — в отдельных версиях для этого можно было удерживать Option при нажатии Start. Такой режим полезен опытным пользователям, когда нужно добавить параметр, которого нет в графической панели.

Редактирование сформированной команды следует считать точечным инструментом. После ручного изменения iFFmpeg уже не может полностью гарантировать согласованность собственных полей с тем, что реально передано FFmpeg. Если команда нужна регулярно, лучше по возможности перенести настройку в Custom Encode Options или сохранить соответствующий пользовательский пресет, чтобы процесс оставался воспроизводимым.

FFmpeg log и Terminal output

Лог особенно полезен при ошибках, которые графическая оболочка может показать коротким сообщением. FFmpeg обычно пишет имя входа, обнаруженные потоки, выбранные энкодеры, mapping и точную причину остановки. По строкам Stream mapping можно проверить, что, например, input 0:1 действительно отправляется в нужный audio output, а внешний файл не заменил основной вход. По Output видно контейнер и фактические параметры результата.

Предупреждения не всегда означают фатальную ошибку. Deprecated pixel format, non-monotonous DTS, invalid dropping и другие сообщения нужно трактовать в контексте. Некоторые предупреждения приводят к воспроизводимому файлу, но сигнализируют о потенциальной несовместимости. Для массовой обработки лучше не игнорировать их систематически: сначала понять, почему они появляются на одном типе входа.

Пользовательские пресеты

Пресет в iFFmpeg сохраняет набор параметров для повторного применения: контейнер, кодеки, качество и многие расширенные опции, а в развитых конфигурациях — фильтры и метаданные. Это основа стабильной пакетной работы. Хороший пресет описывает конкретную задачу, например H.264 1080p для просмотра или ProRes 422 HQ для монтажа, а не абстрактное максимальное качество.

Перед сохранением профиля нужно решить, какие параметры должны следовать за источником. Оригинальный FPS и aspect ratio часто стоит оставить в автоматическом режиме, если входы различаются. Напротив, для фиксированного deliverable разрешение, codec profile и аудиоформат задаются явно. Чем больше параметров жёстко зафиксировано, тем меньше профиль адаптируется к разным источникам.

После изменения сборки FFmpeg старый пользовательский пресет желательно перепроверить. iFFmpeg сохраняет множество x264/x265 и filter options, но FFmpeg может отказаться от устаревшего ключа или изменить допустимый диапазон. Если профиль внезапно перестал работать после смены бинарника, откройте commandline и найдите первый rejected option, а не пересоздавайте всё задание сразу.

Практический сценарий: универсальный H.264 MP4

Для обычного файла, который должен воспроизводиться на широком наборе устройств, базовая схема проста: контейнер MP4, H.264 для видео и AAC для звука. Размер и FPS обычно сохраняют от источника либо уменьшают до требуемого разрешения. В качестве pixel format безопасен совместимый 4:2:0. Качество можно задавать CRF, если точный размер не принципиален, либо битрейтом, если есть ограничение канала.

Не стоит одновременно активировать десятки advanced x264 options. Сначала выбрать разумный preset, профиль, CRF/bitrate и проверить короткий фрагмент. Если принимающее устройство предъявляет конкретный level, задать его после проверки разрешения и FPS. Аудио AAC обычно оставляют 48 кГц для видео, если исходник и спецификация не требуют другого.

  1. Добавьте исходник и убедитесь, что iFFmpeg правильно определил видео и нужную аудиодорожку.
  2. Выберите MP4 и H.264, установите целевой размер кадра либо Original.
  3. Выберите CRF или битрейтную стратегию; не включайте одновременно противоречащие режимы.
  4. Для звука выберите AAC либо passthru, если AAC уже есть и его параметры подходят.
  5. Проверьте первые и последние секунды, перемотку, синхронизацию и отображение в целевом плеере.

Практический сценарий: HEVC для меньшего размера

Если целевые устройства поддерживают HEVC, в iFFmpeg можно выбрать H.265/x265 или VideoToolbox H.265. Для программного x265 задают качество, preset и подходящий профиль; для 10-битного режима проверяют pixel format. В MOV/MP4 имеет смысл использовать hvc1, когда нужна совместимость с системными средствами Apple. Звук можно оставить AAC.

HEVC не стоит выбирать только потому, что он новее. Кодирование x265 значительно тяжелее H.264, а старые устройства могут его не декодировать. Если файл предназначен для неизвестной аудитории, H.264 часто безопаснее. HEVC уместен, когда совместимость подтверждена и выигрыш в размере или качестве оправдывает более сложное кодирование.

Практический сценарий: промежуточный файл ProRes

Для монтажа исходник H.264/HEVC часто переводят в ProRes, чтобы облегчить декодирование и получить предсказуемый intra-frame поток. В iFFmpeg выбирают MOV и нужный профиль ProRes, сохраняют исходную частоту кадров и корректное разрешение. Pixel format должен соответствовать профилю: для 4444 требуется поддерживаемое 4:4:4/alpha-представление, для 422-профилей — соответствующий формат.

Такой транскод не делает исходное видео качественнее и значительно увеличивает размер, но может упростить монтаж и последующие вычисления. Не нужно выбирать ProRes 4444 XQ для любого источника: если камера записала 8-битный 4:2:0 материал без альфа-канала, тяжёлый профиль просто увеличит объём. Профиль выбирают по требованиям монтажного проекта и дальнейшего рендера.

Практический сценарий: заменить только звук

Если видеопоток уже подходит целевому контейнеру, задайте Video Passthru. Для аудио выберите нужный поток и новый кодек, например AAC, AC3 или PCM в совместимом контейнере. Этот путь особенно удобен, когда исходный MKV содержит H.264, который не нужно ухудшать, но звуковая дорожка несовместима с MP4.

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

Практический сценарий: MKV в MP4 без лишних потерь

Сначала разберите содержимое MKV. Если видео H.264 или совместимый HEVC, его можно попытаться скопировать. AAC-аудио обычно тоже переносится; DTS, TrueHD или FLAC в зависимости от требований MP4 и целевого плеера может потребовать перекодирования. PGS-субтитры чаще всего нельзя просто оставить как есть в обычном MP4, поэтому их либо прожигают, либо исключают, либо конвертируют в совместимый тип отдельным процессом.

Такой подход лучше, чем нажимать общий пресет и перекодировать всё: сохраняется качество совместимых потоков и сокращается время. Но remux не исправляет проблемы исходного кодека. Если поток H.264 уже содержит ошибки или временные метки повреждены, прямое копирование перенесёт их в новый контейнер.

Практический сценарий: прожечь внешние субтитры

Добавьте внешний файл субтитров, выберите hardburn и проверьте charset. Затем выберите видеокодек, потому что passthru при прожиге невозможен. Настройте положение и оформление, если формат допускает это, и просмотрите участок с несколькими репликами. При обрезке проверьте PTS и начало временной шкалы, чтобы текст не сместился.

Если субтитры содержат сложные ASS-стили, убедитесь, что используемая сборка FFmpeg имеет необходимые библиотеки и шрифты доступны системе. Проблемы с отсутствующими глифами, неверными шрифтами или позиционированием относятся не к H.264/HEVC, а к рендерингу субтитров. Лог обычно показывает ошибки libass или поиска файла.

Практический сценарий: 4K в 1080p

Выберите целевой размер 1920×1080 только если исходное соотношение сторон действительно 16:9. Для кинематографического 4096×2160 или вертикального материала лучше использовать Scale с сохранением пропорций и при необходимости crop/padding. FPS обычно оставляют исходным. Затем выбирают кодек: H.264 для широкой совместимости, HEVC для более эффективного сжатия при известной поддержке.

Если исходник 10-битный HDR, простое уменьшение разрешения не превращает его в SDR. Нужно отдельно решить, сохраняется ли HDR-сигнализация или выполняется tone mapping. Если исходник SDR, не следует добавлять BT.2020/HDR-поля. Масштабирование и цветовое преобразование — разные этапы.

Типичные ошибки iFFmpeg и как их разбирать

У iFFmpeg полезно отделять три класса проблем: интерфейс не может подготовить задание, FFmpeg не принимает сформированную команду, либо команда выполняется, но результат несовместим с целевой системой. В первом случае проверяют пути, наличие FFmpeg и структуру задания; во втором — первую содержательную ошибку в FFmpeg log; в третьем — контейнер, профиль, pixel format, теги и требования плеера. Такой порядок быстрее, чем случайно переключать пресеты.

FFmpeg не найден или не распознаётся

Если кодирование вообще не начинается и программа просит указать FFmpeg, откройте FFmpeg Manager и выберите именно исполняемый файл. Архив, папка со сборкой или ffprobe не подходят. Если файл выбран, но iFFmpeg его отвергает, проверьте архитектуру и права запуска. После успешного подключения откройте FFmpeg Information: там должны появиться сведения о сборке, а в пробной команде — доступные энкодеры.

При смене бинарника не нужно сразу удалять все пресеты. Сначала загрузите простой H.264/AAC профиль без фильтров. Если он работает, проблема старого задания, вероятно, связана с отдельной опцией. Если не работает даже минимальная команда, диагностируйте сам FFmpeg или его запуск. Это отделяет проблему среды от параметров кодирования.

Unknown encoder или Encoder not found

Такое сообщение означает, что выбранный энкодер отсутствует в подключённой сборке FFmpeg либо называется иначе. Пример — настройка x265 при бинарнике без libx265. Решение не в увеличении битрейта или смене контейнера: нужно выбрать доступный энкодер либо установить другую сборку FFmpeg. Для аппаратного режима отдельно проверяют VideoToolbox.

Если ошибка появилась после переноса пользовательского пресета на другой Mac, это особенно вероятная причина. Пресет хранит намерение использовать конкретный кодек, а набор библиотек в FFmpeg не переносится вместе с ним. Откройте список энкодеров или информацию о сборке и сопоставьте его с параметрами задания.

No such filter или ошибка filter graph

Фильтр может отсутствовать в сборке, быть недоступен из-за зависимостей либо получать неподдерживаемый формат. Сначала отключите все фильтры и убедитесь, что базовое кодирование работает. Затем возвращайте фильтры по одному. Если проблема возникает только после добавления MInterpolate, LUT3D, subtitles или stabilisation, лог обычно показывает точку разрыва цепочки.

Ошибки complex filter часто связаны с тем, что входы имеют разные размеры, форматы пикселей или частоты. При склейке через Complex Filter приведите части к общему виду перед concat. При watermark убедитесь, что изображение реально существует и его размеры/альфа поддерживаются. При subtitles проверьте путь, charset и доступность шрифтов.

Could not write header и неподдерживаемая комбинация потоков

Muxer пишет заголовок до фактического кодирования. Если ошибка возникает на этом этапе, причина часто в контейнере: в него пытаются положить неподдерживаемый аудиокодек, субтитры или служебный поток. Откройте Output в логе и посмотрите список stream. Затем либо смените контейнер, либо перекодируйте проблемную дорожку, либо исключите её.

При переносе MKV в MP4 это особенно частый случай. Видео H.264 может быть полностью пригодно для passthru, а PGS или DTS — нет. Не нужно из-за одного несовместимого потока перекодировать всё видео; достаточно изменить конкретную дорожку.

Invalid argument

Invalid argument — слишком общее сообщение, поэтому важны строки непосредственно перед ним. FFmpeg может отвергать размер, FPS, pixel format, bitrate, профиль или имя опции. В iFFmpeg откройте commandline и найдите параметр рядом с первым сообщением об ошибке. Если включены advanced options, временно сбросьте их до defaults и повторите.

Для DNxHD причиной может быть недопустимое сочетание разрешения, FPS и профиля; для H.264/HEVC — уровень, пиксельный формат или значение x264/x265; для аудио — неподдерживаемая частота или число каналов. Исправлять следует ограничение конкретного кодека, а не весь проект.

Звук есть, изображения нет

Если файл создаётся, но видеоряд чёрный или отсутствует, проверьте, какой видеопоток был mapped, какой pixel format выбрал энкодер и не включён ли ошибочный фильтр. В многопоточном контейнере можно случайно отправить не тот stream. При аппаратном кодировании возможен отказ инициализации формата, а при passthru — несовместимое представление потока для целевого контейнера.

Попробуйте короткий тест без фильтров и с программным H.264. Если изображение появляется, возвращайте исходные настройки по одному: сначала размер/FPS, затем фильтры, затем аппаратный режим. Такой бинарный поиск быстрее, чем одновременно менять пять параметров.

Изображение есть, но нет звука

Проверьте Stream mapping и целевой аудиокодек. Внешний audio file мог заменить ссылку на встроенный поток, выбранная дорожка могла отсутствовать, а контейнер — отвергнуть кодек. При Audio Merge убедитесь, что все входы действительно доступны. Если используется passthru, проверьте, поддерживает ли контейнер исходный аудиоформат.

Если аудиопоток в файле есть, но конкретный плеер молчит, проблема может быть в поддержке кодека или channel layout. Проверка в нескольких плеерах и Media Information помогает отделить отсутствие дорожки от отсутствия декодера на стороне воспроизведения.

Рассинхронизация аудио и видео

Постоянный сдвиг от начала до конца обычно корректируется Time Offset. Нарастающий сдвиг указывает на разницу временных баз, неправильный sample rate, повреждённые timestamps или обработку VFR. Сначала сравните длительность потоков и частоту кадров. Не пытайтесь компенсировать дрейф одним фиксированным offset: начало станет правильным, конец останется неверным.

Если проблема появилась только после trimming, проверьте Copy Timestamps, PTS filters и начало внешней дорожки. Если только после concat — изучите временные метки отдельных частей. При сложном VFR-материале иногда надёжнее перекодировать в CFR с осознанно выбранной частотой, чем сохранять проблемную временную структуру passthru.

Субтитры идут не вовремя

Для внешних субтитров проверьте, к какой версии монтажа они относятся и с нулевой ли отметки начинаются. При обрезке файла временная шкала могла сдвинуться. Hardburn после trim должен учитывать новый PTS; если этого не происходит, сравните команду и лог. Для soft subtitles также важны timestamps контейнера.

Если задержка меняется по ходу ролика, возможно, субтитры подготовлены под другую кадровую частоту или версию видео. В таком случае сдвигом проблему не решить — требуется пересчёт таймингов в редакторе субтитров.

Проблемы с путями и правами

FFmpeg должен читать все входы и писать в destination. Внешние субтитры, LUT, watermark и audio files — отдельные пути, любой из которых может стать недоступным. Если файл перенесён после сохранения пресета или расположен на отключённом сетевом диске, графическое задание выглядит корректно, но FFmpeg получает No such file or directory.

Для проверки временно используйте простую локальную папку без ограничений записи и короткое имя файла. Если там всё работает, возвращайте исходные пути по одному. Это помогает выявить права, сетевой том или конфликт имени. Не используйте перезапись исходника как метод экономии места: сначала создайте отдельный результат и проверьте его.

Видео после конвертации растянуто

Сверьте исходные SAR/DAR и целевой размер. Если выбрано принудительное 1920×1080 для источника другого соотношения сторон без сохранения aspect ratio, искажение ожидаемо. Исправление — Scale с сохранением пропорций, crop или padding. Set SAR/DAR используется, когда нужно изменить интерпретацию геометрии, а не количество пикселей.

Для анаморфного источника особенно опасно одновременно масштабировать и вручную менять DAR без расчёта. Сначала определите, должен ли итог иметь квадратный пиксель. Затем рассчитайте целевую ширину/высоту и только после этого задавайте метаданные пропорций.

Цвета стали бледными или контрастными

Чаще всего причина в неверном color range или несогласованных primaries/transfer. Full и limited нельзя менять произвольно. Если исходник limited range, но результат помечен как full без реального преобразования, плеер интерпретирует уровни иначе. Аналогично, неверная HDR/SDR сигнализация меняет отображение.

Отключите Color Space/LUT и сравните нейтральный транскод. Затем проверьте входные теги и используйте преобразование с явно заданными входом и выходом. Не оценивайте проблему только по одному проигрывателю: некоторые программы по-разному учитывают контейнерные и битстримовые метаданные.

Аппаратное кодирование завершается ошибкой

Уменьшите задачу до поддерживаемого профиля и pixel format, отключите нестандартные фильтры и проверьте VideoToolbox в логе. Если программный x264/x265 работает, а hardware — нет, проблема почти наверняка в ограничениях аппаратного пути. Можно включить fallback на software, если важнее завершить очередь, либо оставить жёсткий отказ, если требуется единый энкодер для всех файлов.

Как строить пресет без лишних рисков

Надёжный пресет создают слоями. Сначала контейнер и один видеопоток без фильтров. Затем звук. После успешного теста добавляют scale/crop, потом субтитры, затем остальные фильтры и метаданные. Такой порядок даёт точку, на которой появляется ошибка. Если собрать двадцать опций сразу, лог сложнее интерпретировать.

  • Сначала определите требования результата: контейнер, кодек, разрешение, FPS, звук и субтитры.
  • Проверьте, что подключённый FFmpeg содержит нужные энкодеры и фильтры.
  • Используйте passthru для потоков, которые не требуется менять и которые совместимы с контейнером.
  • Меняйте advanced options только при конкретной задаче; сохраняйте работающий базовый профиль.
  • Перед большой очередью прогоните короткий типовой файл и проверьте итог в целевом плеере или NLE.

Ограничения iFFmpeg

Главное архитектурное ограничение — зависимость от отдельной сборки FFmpeg. Это даёт гибкость, но означает, что две установки iFFmpeg могут иметь разный набор кодеков. Пользователю приходится следить не только за настройками оболочки, но и за тем, какой бинарник подключён. Для человека, ожидающего конвертер с полностью фиксированным набором компонентов, такой подход требует больше технической дисциплины.

Второе ограничение — сложность интерфейса при продвинутых задачах. Графические панели избавляют от синтаксиса командной строки, но не отменяют концепций FFmpeg: контейнеров, stream mapping, GOP, pixel format, color range, PTS, muxer options и filter chain. Ошибочно выбранные параметры остаются ошибочными, даже если они выставлены кнопками. Поэтому iFFmpeg проще терминала по вводу, но не превращает сложное кодирование в однокнопочную операцию.

Третье ограничение связано с платформой: iFFmpeg предназначен для macOS. Если рабочий процесс должен одинаково запускаться на Windows и Linux, удобнее использовать кроссплатформенную оболочку или сам FFmpeg с переносимыми сценариями. Кроме того, старые сборки iFFmpeg рассчитаны на определённые поколения macOS и Intel-систем, поэтому практическую совместимость с конкретной машиной редактору следует проверять отдельно.

Сравнение iFFmpeg с аналогами

ПрограммаЛучше подходит дляГлавное ограничение
iFFmpegДетальной настройки FFmpeg через графический интерфейс macOS, многопоточных файлов, фильтров и пресетовНужен отдельный FFmpeg; много технических параметров
FFmpegМаксимального контроля, автоматизации, серверных и повторяемых сценариевКомандная строка и высокая сложность синтаксиса
HandBrakeБыстрой перекодировки распространённого видео в типовые современные форматыУже сфокусирован на транскодировании и не заменяет весь набор mux/filter-задач FFmpeg
Shutter EncoderПакетной медиаконвертации и производственных операций через GUIБольшое число режимов также требует понимания кодеков и контейнеров
AvidemuxПростого перекодирования и быстрых операций резки с ограниченным набором фильтровМеньше средств для сложных многопоточных и пакетных схем
ВидеоМАСТЕРПонятной конвертации распространённых видеоформатов в WindowsМеньше прямого доступа к низкоуровневым параметрам FFmpeg

Выбор зависит от того, где находится сложность задачи. Если нужен максимально прозрачный и автоматизируемый процесс, FFmpeg остаётся базовым инструментом. Если важны готовые пресеты и типовой H.264/H.265-транскод, HandBrake проще. Shutter Encoder ближе к универсальному производственному интерфейсу, Avidemux удобен для сравнительно прямых операций, а ВидеоМАСТЕР ориентирован на более доступную конвертацию в Windows. iFFmpeg занимает нишу между командной строкой и упрощёнными конвертерами: он раскрывает большое число параметров FFmpeg, но позволяет собирать их через формы, мастера и очередь.

Практически iFFmpeg лучше выбирать, когда пользователь понимает, зачем ему passthru, mapping, x264/x265 options, фильтры, главы или несколько дорожек, но не хочет вручную писать длинные команды. Если же задача всегда сводится к сделать MP4 для просмотра, более простой конвертер даст меньше поводов ошибиться. И наоборот, если требуется полностью воспроизводимая автоматизация на нескольких операционных системах, скрипт FFmpeg будет переносимее графического пресета.

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

Можно ли пользоваться iFFmpeg без отдельного FFmpeg?

Для анализа медиаданных часть функций интерфейса может быть доступна, но для конвертации, фильтрации и большинства операций нужен рабочий бинарник FFmpeg. iFFmpeg строит и запускает его команды, поэтому отсутствие кодировщика нельзя компенсировать настройкой в самой оболочке. После подключения стоит открыть FFmpeg Information и убедиться, что нужные энкодеры действительно присутствуют.

Почему один и тот же пресет работает с одним FFmpeg и не работает с другим?

Сборки отличаются конфигурацией. В одной есть libx264, libx265, конкретный subtitle-фильтр или VideoToolbox, в другой соответствующий компонент отсутствует. Кроме того, синтаксис отдельных опций со временем менялся. Если после замены бинарника старый профиль падает, сравните список энкодеров и первую ошибку в логе; не начинайте с изменения качества или контейнера без связи с сообщением FFmpeg.

Можно ли изменить контейнер без ухудшения качества?

Да, если все нужные потоки совместимы с новым контейнером. Тогда используется passthru/remux: видео и аудио копируются без перекодирования. Но, например, при переносе из MKV в MP4 отдельная аудиодорожка или субтитры могут оказаться несовместимыми. В таком случае перекодируют или исключают только проблемный поток, а совместимое видео оставляют без изменений.

Когда выбирать CRF, а когда битрейт?

CRF удобен, когда главным критерием является визуальное качество, а точный размер файла заранее не задан. Битрейт используют при ограничении канала, объёма или спецификации доставки. Двухпроходный режим имеет смысл, когда нужен более предсказуемый средний размер и распределение битов. Значения нельзя механически переносить между H.264, HEVC, VP9 и аппаратными энкодерами: шкалы и эффективность у них различаются.

Почему фильтр нельзя совместить с Video Passthru?

Passthru копирует уже сжатый видеопоток без декодирования. Crop, scale, watermark, deinterlace, цветовое преобразование и другие фильтры должны изменить пиксели, поэтому FFmpeg обязан декодировать исходник и затем снова закодировать результат. Если требуется сохранить качество исходного потока бит-в-бит, фильтры нужно отключить; если фильтрация обязательна, выбрать видеокодек и параметры повторного кодирования.

Как сохранить несколько звуковых дорожек?

Добавьте отдельные audio streams и для каждой выберите источник, кодек или passthru, язык и при необходимости название. Не используйте Audio Merge, если дорожки должны оставаться переключаемыми: Merge сводит их в один поток. Для многодорожечного результата удобен контейнер, который поддерживает нужное число и тип аудиопотоков; Matroska в этом отношении гибче многих вариантов MP4.

Что делать, если итог открывается в VLC, но не в системном плеере?

Это признак различий в поддержке контейнера, профиля или тегов. Проверьте видеопрофиль и level, pixel format, аудиокодек, тип субтитров и для HEVC в MOV/MP4 — использование hvc1. Универсальный плеер может декодировать комбинацию, которую системный компонент не принимает. Ориентироваться нужно на требования той среды, где файл реально будет использоваться.

Как понять, что параметр в Advanced действительно нужен?

У параметра должна быть конкретная причина: требование устройства, устранение известной ошибки, контроль GOP, цветовых метаданных, битрейта или другого измеримого свойства. Если цель формулируется как сделать качество лучше без понимания функции опции, безопаснее оставить значение пресета. Расширенные поля x264/x265 взаимосвязаны, и случайная комбинация может ухудшить совместимость или эффективность кодирования.

Можно ли использовать iFFmpeg только для извлечения кадров?

Да. Программа умеет экспортировать кадры в изображения, выбирать частоту выборки и в отдельных режимах сохранять только ключевые кадры. Для полного покадрового экспорта заранее оцените объём: длинное видео создаёт тысячи файлов. Выходной формат выбирайте по назначению — JPG для компактных превью, PNG/TIFF для задач, где важнее минимизировать дополнительную потерю.

Что проверить перед длинной ночной очередью?

Проверьте один типовой результат от начала до конца: изображение, звук, синхронизацию, субтитры, перемотку и воспроизведение в целевой программе. Убедитесь, что output-папка доступна и на диске достаточно места, внешние LUT/аудио/субтитры не будут перемещены, а Watch Folder не подхватит собственный результат. Для параллельного кодирования выберите число задач, которое не вызывает нехватку памяти и постоянный swap.

Итоговая схема работы

Надёжная работа с iFFmpeg строится от требований результата к параметрам FFmpeg, а не наоборот. Сначала определяется контейнер и набор нужных потоков, затем решается, что можно оставить в passthru и что необходимо перекодировать. После этого выбираются кодеки и их базовые параметры, а фильтры, субтитры, главы и метаданные добавляются только там, где они действительно нужны. Такая последовательность уменьшает число конфликтов между контейнером, mapping и filter chain.

Для сложного задания полезно сохранить работающий пресет и журнал контрольного запуска. Если позже потребуется изменить разрешение, качество или звуковую дорожку, можно править один слой, не перестраивая всё с нуля. iFFmpeg ценен именно как визуальный способ собрать подробную FFmpeg-команду, но предсказуемый результат по-прежнему зависит от согласованности кодека, контейнера, потоков, временных меток и возможностей подключённой сборки.