Что такое FFV1 и как с ним работать: просмотр, монтаж, конвертация и проверка видео на компьютере и смартфоне

FFV1 — это кодек видео без потерь, а не отдельное расширение файла. На диске такая запись обычно выглядит как обычный .mkv, .mov или другой контейнер, поэтому двойной щелчок по имени файла не сообщает, чем именно сжаты кадры. Перед просмотром, монтажом или преобразованием полезно сначала определить внутренний видеокодек, формат пикселей, разрядность, частоту кадров и порядок полей. От этого зависит, можно ли просто поменять контейнер без повторного кодирования, нужен ли полноценный транскодинг и не будет ли потеряна часть исходных данных.

FFV1 чаще встречается в архивах, оцифровках плёнки и кассет, мастер-копиях и технических рабочих материалах, где важнее сохранить исходные значения пикселей, чем получить небольшой файл для телефона или браузера. Для повседневного просмотра такой мастер нередко преобразуют в H.264/H.265, а для монтажа — либо открывают напрямую в совместимой системе, либо делают промежуточный файл. В этой инструкции эти задачи разделены: просмотр, редактирование, lossless-перекодирование, remux без изменения видеопотока и создание совместимой производной — разные операции.

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

Что такое FFV1 и почему расширение файла не отвечает на этот вопрос

FFV1 — кодек, а MKV, MOV и AVI — контейнеры

Кодек определяет, как представлены видеокадры, а контейнер объединяет видеопоток с аудио, субтитрами, таймкодами, вложениями и метаданными. Поэтому два файла с одинаковым расширением .mkv могут содержать совершенно разные видеокодеки: в одном будет H.264, в другом FFV1. Обратная ситуация тоже возможна: FFV1 может находиться в разных контейнерах, если конкретный muxer и программа поддерживают такое сочетание.

Это различие особенно важно при конвертации. Команда stream copy переносит уже закодированный FFV1-поток в другой контейнер и не пересчитывает кадры. Полный transcode сначала декодирует кадры, затем снова кодирует их — в FFV1, ProRes, H.264 или другой формат. Первый путь обычно быстрее и сохраняет видеопоток бит-в-бит; второй нужен, когда меняется кодек, параметры изображения или выполняются фильтры.

ТерминЧто он определяетПримерЧто меняется при операции
КодекСпособ представления видеокадровFFV1, H.264, ProResПри transcoding кадры декодируются и кодируются заново
КонтейнерУпаковку видео, аудио и других потоковMatroska/MKV, MOV, AVIПри remux видеокодек может остаться тем же
РасширениеВнешний суффикс имени файла.mkv, .movСамо переименование ничего не конвертирует
Pixel formatРазрядность и организацию цветовых компонентовyuv422p10le, gbrp10leСмена 10-bit на 8-bit или 4:2:2 на 4:2:0 уже изменяет данные

Для FFV1 в Matroska используется собственная идентификация видеокодека внутри контейнера. Пользователю не нужно вручную прописывать FourCC или «устанавливать расширение FFV1», если выбранная программа имеет встроенный декодер. На современных рабочих станциях именно встроенная поддержка FFmpeg-библиотек или собственный FFV1 decoder обычно практичнее старой схемы с системными codec pack.

Не путайте FFV1 с файлами .FFV и .FF

Расширения .FFV и .FF не обозначают FFV1. Совпадение букв в имени расширения не определяет видеокодек, а файл video.ffv1, полученный простым переименованием, не становится корректным контейнером. Реальный codec определяют по структуре медиафайла через MediaInfo, ffprobe или совместимый медиаплеер.

Практическое правило простое: когда файл прислан как «FFV1», сначала смотрите не на имя, а на поле codec. Если программа показывает ffv1 или FFV1 для видеопотока, можно строить дальнейший workflow вокруг этого кодека. Если отображается H.264, HEVC, MPEG-2 или другой формат, работать нужно с фактическим кодеком, даже если имя файла содержит FFV1.

Что означает lossless и intra-frame

FFV1 относится к lossless-кодекам: при корректном декодировании восстанавливаются те значения кадров, которые были переданы энкодеру. Это не означает, что любой файл «становится лучше» после перекодирования в FFV1. Если исходник уже был сжат H.264 с потерями, созданная FFV1-копия сохранит результат этого декодирования, но не восстановит детали, уничтоженные предыдущим lossy-кодированием.

Кодек также intra-frame: кадры кодируются независимо, без длинных межкадровых цепочек предсказания, характерных для распространённых distribution-кодеков. Это удобно для архивной работы, восстановления отдельного повреждённого участка, покадрового доступа и некоторых монтажных операций. Компромисс — размер архива обычно существенно выше, чем у H.264/H.265, потому что задача FFV1 не состоит в максимальном уменьшении файла ценой потерь.

Версии FFV1 и зачем чаще выбирают уровень 3

FFV1 имеет версии 0, 1 и 3; для современных архивных сценариев ключевой стала версия 3. Она стандартизована и поддерживает механизмы, полезные при долговременном хранении, включая slices и контроль целостности с CRC. Развивающаяся версия 4 не должна автоматически подменять стабильный v3 в консервативном архивном workflow: для мастер-копии важнее предсказуемая межпрограммная совместимость и долговременная декодируемость.

В FFmpeg версию 3 задают параметром -level 3. У энкодера также есть параметры -coder, -context и -slicecrc. Их не нужно менять наугад ради «максимального качества»: FFV1 и без этого lossless. Эти настройки влияют на способ кодирования, скорость, размер и структуру потока, а не на визуальный уровень качества как CRF у H.264. Для архива полезнее сначала сохранить исходный pixel format и все нужные потоки, а затем проверить результат.

Как проверить, что файл действительно содержит FFV1

MediaInfo: быстрый способ без командной строки

Интерфейс MediaInfo с параметрами видеопотока, bit depth и scan type

MediaInfo удобен, когда нужно увидеть структуру файла без перекодирования. Откройте ролик и переключите представление так, чтобы были видны отдельные потоки. В блоке Video ищите название формата/кодека, ширину и высоту, frame rate, bit depth, chroma subsampling или pixel format, scan type/field order и цветовые характеристики. В блоках Audio и Text проверьте количество аудиодорожек и субтитров: именно они чаще всего теряются при неосторожном преобразовании.

  • Codec/Format. Для нужного сценария должен определяться FFV1.
  • Bit depth. 10- или 12-битный мастер нельзя бездумно выводить в 8-bit и продолжать называть преобразование полностью lossless относительно исходника.
  • Chroma. Значение 4:2:2 не следует автоматически менять на 4:2:0, особенно при оцифровке и профессиональном монтаже.
  • Scan type и field order. Для чересстрочного VHS/SD-источника эти поля критичны: автоматический deinterlace меняет мастер.
  • Audio tracks. Если их несколько, заранее решите, копировать все или только выбранные.
  • Subtitles/attachments. Matroska может содержать больше данных, чем показывает обычный плеер.

ffprobe: точная проверка перед скриптом или пакетной обработкой

ffprobe входит в комплект FFmpeg и выводит параметры без создания нового видео. Для одного видеопотока удобно запросить только поля, которые влияют на сохранность изображения:

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,pix_fmt,width,height,r_frame_rate,field_order,color_range,color_space,color_transfer,color_primaries -of default=noprint_wrappers=1 input.mkv

Если в строке codec_name получено ffv1, кодек определён однозначно. pix_fmt=yuv422p10le означает планарный YUV 4:2:2 с 10-битными компонентами; это уже важнее внешнего расширения. field_order помогает не потерять чересстрочную структуру, а поля color_* позволяют заметить, что при обработке исчезла или изменилась цветовая сигнализация.

Чтобы увидеть все потоки и их индексы, используйте полный вывод -show_streams или краткий список codec/type. Перед сложным архивным преобразованием зафиксируйте этот вывод в текстовом файле рядом с мастером: он станет контрольной точкой для проверки результата.

ffprobe -v error -show_entries stream=index,codec_type,codec_name,pix_fmt,channels:format=format_name,duration -of default=noprint_wrappers=1 input.mkv

Почему свойства файла в Проводнике и Finder недостаточны

Системный файловый менеджер обычно показывает расширение, размер, длительность и часть метаданных. Эти сведения не гарантируют, что видеодорожка — FFV1, и не показывают все параметры pixel format. Тем более нельзя считать проверкой успешный запуск ролика двойным щелчком: воспроизведение говорит лишь о том, что выбранный decoder смог прочитать текущую комбинацию контейнера и кодека.

Перед любой операцией с архивной копией полезно записать четыре группы данных: codec, container, image format и список потоков. После работы эти четыре группы проверяются снова. Такой короткий протокол предотвращает большинство незаметных потерь, например исчезновение второй аудиодорожки или перевод 10-bit 4:2:2 в 8-bit 4:2:0.

Windows: как открыть, редактировать и конвертировать FFV1

1. ВидеоМАСТЕР — простой монтаж производной после подготовки FFV1

ВидеоМАСТЕР используется здесь как редактор совместимой рабочей производной. FFV1-мастер остаётся неизменным, а через FFmpeg или Shutter Encoder создаётся файл в формате, который нужен для пользовательского монтажа. После этого производную открывают в ВидеоМАСТЕР, выполняют обрезку, кадрирование, эффекты и экспорт, не смешивая монтажную копию с архивным оригиналом.

Главное окно ВидеоМАСТЕР с кнопками Добавить, Обрезать, Эффекты, Соединить и Конвертировать

Шаг 1. Сначала зафиксируйте параметры исходного FFV1

Запустите MediaInfo или ffprobe и запишите codec, pixel format, разрешение, частоту кадров, field order и аудиодорожки. Не начинайте с переименования расширения и не пытайтесь сразу «сохранить в MP4» неизвестным конвертером: в этом случае невозможно понять, какие свойства изменились.

Шаг 2. Создайте совместимую рабочую копию

Если задача — обычный монтаж для публикации, можно сделать H.264/MP4 производную. Это lossy-копия, поэтому исходный FFV1 не удаляют. Пример команды для качественного рабочего файла:

ffmpeg -i master.mkv -map 0:v:0 -map 0:a? -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k work.mp4

Значение CRF в примере — не «режим без потерь», а практический ориентир для рабочей H.264-копии. Если монтаж должен оставаться в lossless/intermediate-цепочке, вместо этого используйте совместимый редактор, который принимает FFV1 напрямую, либо профессиональный intermediate-кодек. В таком случае ВидеоМАСТЕР не должен быть промежуточным звеном только ради формального соблюдения маршрута.

Шаг 3. Добавьте рабочий файл

В главном окне нажмите Добавить и выберите подготовленный MP4/MOV/AVI или другой реально поддерживаемый файл. После импорта ролик появляется в списке заданий слева, а область предварительного просмотра показывает текущий кадр. Перед редактированием убедитесь, что длительность и звук соответствуют исходной рабочей копии.

Шаг 4. Обрежьте ненужные части

Нажмите Обрезать. В окне разделения задайте границы фрагмента маркерами и при необходимости создайте несколько отрезков через Новый фрагмент. Кнопка Применить возвращает результат в основную задачу. Обрезка внутри такого редактора относится к монтажу рабочей производной, а не к stream copy исходного FFV1.

Окно Разделить в ВидеоМАСТЕР с маркерами фрагмента и кнопкой Применить

Шаг 5. Выполните кадрирование и другие правки

Для изменения кадра откройте Эффекты и перейдите на вкладку Кадрирование. Здесь задаются размер и положение области. В этом же окне доступны вкладки Эффекты, Текст, Улучшения, Поворот и Скорость. Любая такая обработка меняет пиксели и требует нового кодирования при экспорте, поэтому её нельзя сравнивать с lossless remux.

Вкладка Кадрирование в окне редактирования ВидеоМАСТЕР

Фильтры стоит применять только к той производной, для которой визуальное изменение действительно нужно. Архивную master-копию FFV1 держите отдельно: наличие «lossless» в исходном кодеке не превращает художественный фильтр, масштабирование или изменение скорости в обратимую операцию.

Вкладка Эффекты в ВидеоМАСТЕР с перечнем визуальных фильтров

Шаг 6. Выберите формат вывода и конвертируйте

Откройте вкладку Форматы и выберите профиль под конечное устройство или площадку. На экране выбора присутствуют семейства MPEG4/MP4, MKV, HEVC, WebM, WMV, ASF, QuickTime MOV и другие варианты. Затем при необходимости откройте Параметры и только после проверки задания нажмите Конвертировать.

Окно выбора формата в ВидеоМАСТЕР с MP4, MKV, HEVC, WebM, WMV, ASF и MOV

После экспорта сравните длительность, разрешение, звук и первые/средние/последние кадры с рабочим исходником. Для архивного мастера проверка другая: там важны codec/pix_fmt/bit depth и при lossless FFV1 → FFV1 можно использовать FrameMD5. H.264-производную по FrameMD5 с FFV1-мастером сравнивать бессмысленно: lossy-кодирование специально меняет декодированные значения.

Плюсы:

  • простая последовательность импорта, обрезки, эффектов и экспорта для пользователя, которому не нужен командный интерфейс;
  • наглядный выбор популярных конечных форматов и профилей;
  • монтажная производная не требует менять или перезаписывать архивный FFV1-мастер.

Минусы:

  • в этом workflow для монтажа используется заранее подготовленная совместимая производная, а FFV1-мастер хранится отдельно;
  • экспорт в распространённый H.264/MP4 решает совместимость, но уже не является lossless относительно FFV1;
  • для сохранения необычной разрядности, chroma subsampling и архивных метаданных лучше использовать специализированный workflow.

2. XMedia Recode — детальный контроль контейнера, потоков и кодирования

XMedia Recode удобен на Windows, когда нужен графический интерфейс с отдельными вкладками для контейнера, видео, аудио, субтитров и фильтров. Важное отличие от упрощённых конвертеров — режимы Convert и Copy задаются для потоков раздельно. Это позволяет осознанно выбрать: перекодировать FFV1, оставить аудио без изменений или собрать новый контейнер из существующих дорожек.

Главное окно XMedia Recode со списком задания и вкладкой Format

Как построить задание

  1. Нажмите Open File и выберите исходный контейнер с FFV1. После анализа файл появится в верхнем списке.
  2. Откройте вкладку Format и задайте конечный контейнер. Не выбирайте контейнер только по расширению: он должен принимать все нужные потоки.
  3. На вкладке Video проверьте Mode. Для нового кодирования используется Convert; для переноса уже совместимого видеопотока — Copy. Если выполняются фильтры, stream copy невозможен.
  4. На вкладке Audio решите отдельно, нужна ли конвертация звука. При архивной миграции lossless-аудио можно сохранить или перекодировать в другой lossless-кодек; при web-производной чаще нужен AAC.
  5. На вкладке Filters/Preview не включайте deinterlace, resize, crop и color conversion автоматически. Каждый такой фильтр меняет изображение.
  6. Укажите папку назначения, нажмите Add to queue, затем запускайте Encode. Перед большой партией сначала обработайте короткий тестовый файл.

Вкладка Video в XMedia Recode с настройками видеопотока

Раздел Video полезен тем, что позволяет видеть источник и параметры выхода рядом. Для FFV1-master задача не сводится к выбору слова FFV1 в списке кодеков: проверяйте разрядность и pixel format. Если исходник 10-bit 4:2:2, а GUI показывает только 8-bit 4:2:0 для выбранного режима, это уже другая техническая задача.

Вкладка Filters/Preview в XMedia Recode с фильтрами и окном предварительного просмотра

Для пакетной работы очередь особенно полезна: можно подготовить несколько заданий с одинаковой структурой, а затем запустить их последовательно. Но одинаковый preset не гарантирует одинаковую корректность для разных источников. До постановки файлов в очередь сравните их codec, bit depth, chroma и interlace: неоднородный архив лучше разделить на группы.

Кнопка Add to queue в XMedia Recode

Плюсы:

  • отдельные вкладки для видео, аудио, субтитров и фильтров помогают не терять дополнительные потоки;
  • режим Copy позволяет отличать remux/stream copy от полноценного кодирования;
  • очередь подходит для повторяемых задач после предварительной проверки профиля.

Минусы:

  • большое число параметров увеличивает риск случайно включить resize, deinterlace или несовместимый pixel format;
  • не каждая комбинация кодека, контейнера и аудиоформата допустима; это нужно проверять до длинной обработки;
  • для скриптуемой валидации больших архивов командный FFmpeg обычно прозрачнее.

3. DaVinci Resolve — полноценный монтаж с прямой поддержкой FFV1

DaVinci Resolve нужен, когда требуется не просто обрезать начало и конец, а вести многодорожечный монтаж, работать со звуком, цветом и титрами. В таблицах поддерживаемых кодеков Blackmagic FFV1 указан для MOV и MKV с декодированием и кодированием; доступны разные YUV- и RGBA-представления. Это делает программу существенно более подходящей для профессиональной работы с FFV1, чем универсальный бытовой конвертер.

Страница Edit в DaVinci Resolve с Media Pool, viewer и многодорожечной timeline

https://media.licdn.com/dms/image/v2/D5622AQHpCLfpBGnMuQ/feedshare-shrin...

Монтаж и экспорт FFV1

  1. На странице Media добавьте исходный MOV/MKV с FFV1 в Media Pool. Если клип не импортируется, сначала сверяйте container, codec и pixel format, а не меняйте расширение.
  2. Перейдите на страницу Edit, создайте timeline и разместите клип. До монтажа проверьте project/timeline frame rate: менять его после начала проекта неудобно и часто нежелательно.
  3. Выполните монтаж. Любая цветокоррекция, масштабирование, шумоподавление, деинтерлейсинг или композитинг требуют нового рендера; это уже не stream copy.
  4. На странице Deliver выберите пользовательский экспорт. Если задача — снова получить FFV1, выберите совместимый MOV или MKV и Codec: FFV1, затем проверьте доступный тип YUV/RGBA и разрядность.
  5. Добавьте задание через Add to Render Queue и запустите Render All. После рендера проверьте файл через ffprobe/MediaInfo.

Для архива особенно важно не полагаться на превью viewer как на доказательство сохранности. Даже когда картинка «выглядит одинаково», вывод мог стать 8-bit вместо 10-bit или 4:2:0 вместо 4:2:2. Сравнивайте технические параметры, а при FFV1 → FFV1 без визуальных фильтров дополнительно используйте FrameMD5. Если монтаж менял картинку, FrameMD5 закономерно будет отличаться.

Плюсы:

  • реальный timeline-монтаж и прямой импорт/экспорт FFV1 в поддерживаемых MOV/MKV-сценариях;
  • точное управление профессиональным изображением, звуком и несколькими дорожками;
  • поддержка нескольких YUV/RGBA-вариантов FFV1, включая высокую разрядность в доступных режимах экспорта.

Минусы:

  • это тяжёлый NLE, избыточный для простого remux или разовой обрезки;
  • часть параметров зависит от ОС, редакции и конкретной комбинации контейнера/формата;
  • монтажные эффекты делают результат намеренно отличным от исходных decoded frames.

4. Avidemux — простая обрезка, фильтры и новое FFV1-кодирование

Avidemux удобен между двумя крайностями: он проще профессионального NLE, но позволяет выбрать Video Output, Audio Output и Output Format раздельно. FFV1 присутствует в поддерживаемых decoder/encoder-сценариях, поэтому программу можно использовать для несложной обработки, если заранее контролировать pixel format и контейнер.

Главное окно Avidemux с Video Output, Audio Output и Output Format

Обрезка без лишней обработки

Откройте файл через меню File. Для выбора фрагмента используйте маркеры A и B. Если в Video Output стоит Copy, видеопоток не перекодируется; это самый щадящий режим там, где границы и контейнер позволяют корректно выполнить копирование. После включения видеоряда фильтров режим Copy уже не может сохранить обработанные кадры — нужен encoder.

Фильтры и FFV1 output

Нажмите Filters, если требуется crop, resize, deinterlace или цветовая операция. Перед применением deinterlace к VHS/SD-master определите field order и решите, нужен ли вообще progressive-вывод: архивную копию обычно разумнее хранить без необратимого деинтерлейсинга, а progressive-версию делать отдельно для просмотра.

Окно Video Filter Manager в Avidemux
Окно настройки фильтра Contrast в Avidemux с предварительным просмотром

При новом кодировании выберите FFV1 в Video Output, затем отдельно настройте Audio Output и Output Format. Не считайте слово FFV1 достаточной гарантией: если в цепочке фильтрации произошла конвертация цветового формата, выход lossless относительно данных, которые поступили в энкодер, но не обязательно идентичен первоначальному master по decoded pixels.

Окно Preferences в Avidemux с разделами интерфейса, output, audio и threading

Плюсы:

  • раздельные Video Output, Audio Output и Output Format делают логику операции видимой;
  • режим Copy позволяет выполнить простые операции без видеоперекодирования, когда это допустимо;
  • подходит для небольших задач, где профессиональный NLE избыточен.

Минусы:

  • при фильтрации легко незаметно изменить pixel format, поэтому параметры выхода нужно проверять;
  • точность cut без re-encoding зависит от структуры потока и выбранных границ;
  • интерфейс рассчитан на технически осознанный выбор, а не на автоматическое сохранение всех свойств мастера.

Legacy-сценарий Windows: K-Lite Mega Codec Pack , Media Player Classic HC , ffdshow и VirtualDub

Старые инструкции часто предлагают поставить системный codec pack или ffdshow, после чего открыть FFV1 в Media Player Classic HC либо VirtualDub. Такой подход исторически был полезен для приложений, которые зависели от DirectShow/VfW-компонентов. Сегодня его лучше рассматривать как совместимость с наследуемым рабочим местом, а не обязательную процедуру для каждого FFV1-файла.

Если современный VLC media player, FFmpeg, Avidemux или другой инструмент со встроенным decoder уже открывает источник, установка дополнительного codec pack не улучшает сам файл. Напротив, несколько системных фильтров могут усложнить диагностику старого ПО. K-Lite Mega Codec Pack и Media Player Classic HC уместны, когда конкретная legacy-программа действительно требует системного пути декодирования; VirtualDub — когда сохраняется старый VfW-workflow.

  • не устанавливайте неизвестный пакет, который называется просто «FFV1 codec», только потому, что найден старый download-page;
  • если legacy-приложение нужно для проекта, зафиксируйте используемый decoder и протестируйте короткий файл до работы с архивом;
  • для преобразования и проверки результата предпочтительнее инструмент, который явно показывает кодек и параметры выходного потока.

macOS: просмотр и конвертация FFV1

Shutter Encoder — GUI для архива, rewrap и проверки

Shutter Encoder — один из наиболее прямых графических способов работы с FFV1. В списке функций FFV1 вынесен в категорию archival codec, а рядом доступны Rewrap, Cut without re-encoding и FrameMD5. Это важно: одна программа позволяет не смешивать три разных задачи — новое lossless-кодирование, смену контейнера без пересчёта видео и контроль decoded frames.

Главное окно Shutter Encoder с Browse, Choose function и Start function

FFV1 → FFV1

  1. Нажмите Browse... и добавьте исходный файл. Для большой партии сначала загрузите один характерный sample.
  2. Откройте список Choose function и выберите FFV1. Это создаёт новый FFV1-поток, а не просто меняет расширение.
  3. Проверьте выходной контейнер и дополнительные настройки. Не включайте scale, crop, color correction или deinterlace только ради «совместимости», если задача — миграция архива.
  4. Выберите папку назначения в блоке Output. Исходный файл не удаляйте до отдельной проверки нового результата.
  5. Нажмите Start function. После завершения сравните параметры через Information/MediaInfo и при необходимости создайте FrameMD5.

Панель настроек Shutter Encoder с Image, Audio settings, Colorimetry и Advanced features

Панель настроек содержит множество операций, способных изменить изображение: масштабирование, поворот, crop, colorimetry, color grading, corrections. Для lossless archive migration отсутствие визуальных изменений важнее богатства этой панели: оставляйте преобразования выключенными, если они не являются частью задания.

Rewrap: когда кодек менять не нужно

Если проблема только в контейнере, выбирайте Rewrap, а не новый encoder. В этом режиме видеопоток можно перенести без декодирования/кодирования. Но контейнер должен поддерживать не только FFV1, но и остальные выбранные дорожки. Совместимый FFV1-видеопоток не гарантирует, что тот же контейнер примет исходный аудиокодек: например, при переносе в MOV отдельным препятствием может стать FLAC-аудио. Поэтому анализируйте все streams, а не только Video.

Cut without re-encoding

Для удаления лишнего начала или конца без полного пересчёта выберите Cut without re-encoding. В player задайте нужный диапазон и проверьте границы. Такой cut экономит время и не создаёт новое поколение кодирования, но точность границ зависит от структуры исходного потока и контейнера. Для FFV1 intra-frame доступ к кадрам проще, однако итог всё равно нужно воспроизвести и проверить.

Плеер Shutter Encoder в режиме Cut without re-encoding с выбранным диапазоном

FrameMD5 и очередь

Функция FrameMD5 вычисляет контрольные суммы декодированных кадров. Её полезно запускать для master до и после FFV1 → FFV1, если в цепочке не было намеренных визуальных изменений. Для большой партии сначала убедитесь на одном файле, что FrameMD5 совпадает, а затем добавляйте остальные задания в очередь.

Окно Render Queue в Shutter Encoder
Окно Information в Shutter Encoder с техническими параметрами видеопотока

Плюсы:

  • FFV1, Rewrap, Cut without re-encoding и FrameMD5 находятся в одном техническом workflow;
  • подходит для macOS, Windows и Linux и не требует ручного набора каждой команды FFmpeg;
  • показывает техническую информацию и позволяет строить очередь.

Минусы:

  • богатая панель фильтров создаёт риск ненамеренно изменить мастер, если включать настройки без необходимости;
  • rewrap зависит от совместимости всех потоков с выбранным контейнером;
  • это не полноценный многодорожечный NLE: сложный монтаж удобнее выполнять в специализированном редакторе.

HandBrake — FFV1 как кодировщик в привычном transcoding-интерфейсе

HandBrake поддерживает FFV1 в списке видеокодировщиков и работает на macOS, Windows и Linux. Его логика отличается от Shutter Encoder: основная модель — открыть источник и создать новое закодированное представление. Поэтому HandBrake уместен для FFV1 → FFV1 или FFV1 → distribution codec, но не является первым выбором для простого rewrap без видеоперекодирования.

Интерфейс HandBrake на macOS с Open Source, Add To Queue, Start и вкладкой Video

Транскодирование в интерфейсе HandBrake

  1. Нажмите Open Source и выберите файл с FFV1. Дождитесь анализа источника и проверьте длительность, размеры и дорожки.
  2. Откройте вкладку Video. В поле Video Encoder выберите FFV1, если задача — lossless output. Если нужен H.264/H.265 для распространения, осознанно выберите соответствующий lossy encoder вместо FFV1.
  3. Проверьте frame rate. Для archival workflow не меняйте его автоматически без причины.
  4. На вкладке Audio решите, будет ли дорожка перекодирована или передана в passthrough. Это отдельное решение от видеокодека.
  5. Используйте Add To Queue для партии или Start для одного задания. После завершения сравните технические поля с исходником.

Область Video Encoder и параметров видео в HandBrake

В HandBrake FFV1 доступен как видеокодировщик. Для 10/12-bit исходников после encode обязательно сверяйте фактический pix_fmt и bit depth через ffprobe: название lossless-кодека само по себе не гарантирует, что другие этапы pipeline не преобразовали pixel format. Если выбранный режим меняет разрядность или chroma subsampling, такой output уже не идентичен исходному master по decoded pixels.

Панель presets в HandBrake

Плюсы:

  • знакомый GUI-процесс Source → Video → Audio → Queue;
  • FFV1 доступен как видеокодировщик, включая high-bit-depth workflow;
  • удобная очередь для повторяемого transcoding.

Минусы:

  • не ориентирован на простой remux, когда кодек вообще не нужно менять;
  • preset может менять frame rate, размер, аудио и другие параметры — его нельзя выбирать без проверки;
  • для точного контроля архивных streams и автоматической валидации FFmpeg даёт более прозрачную команду.

VLC media player — быстрый просмотр и диагностика

VLC media player полезен прежде всего как плеер: он имеет собственный набор декодеров, поэтому часто открывает необычные файлы без установки системных codec pack. Для FFV1 его задача — быстро проверить воспроизведение, звук и потоковую информацию; полноценный монтаж или архивную миграцию лучше выполнять другими инструментами.

Главное окно VLC media player во время воспроизведения видео

  1. Откройте Media → Open File и выберите контейнер с FFV1.
  2. Проверьте перемотку, начало, середину и конец. Послушайте звук на нескольких участках, чтобы заметить рассинхрон.
  3. Откройте Tools → Codec Information либо Media Information и сверяйте видеокодек и дорожки.
  4. Если файл не играет, сначала проверьте его через ffprobe. Не делайте вывод «FFV1 повреждён» только по одному плееру.

Меню Tools в VLC media player с Media Information и Codec Information

Плюсы:

  • быстрая проверка файла без монтажа и без системной установки отдельного FFV1 decoder;
  • доступ к Codec Information и Media Information;
  • работает как простой sanity-check после конвертации.

Минусы:

  • не заменяет MediaInfo/ffprobe для полного контроля pixel format и всех технических полей;
  • не является полноценным видеоредактором;
  • успешное воспроизведение само по себе не доказывает lossless-идентичность.

Linux: FFV1 через командную строку и технические GUI

FFmpeg — самый контролируемый способ кодировать, remux и проверять FFV1

На Linux FFmpeg особенно удобен тем, что одна и та же команда явно показывает, какие потоки читаются, какие копируются, а какие кодируются заново. Это снижает риск скрытого preset-преобразования. Тот же подход работает на Windows и macOS, поэтому команды полезно сохранять как воспроизводимую запись параметров архивного процесса.

Сначала инспекция

Командная строка с выводом FFmpeg после запуска утилиты

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,pix_fmt,width,height,r_frame_rate,field_order,color_range,color_space,color_transfer,color_primaries -of default=noprint_wrappers=1 master.mkv

Не переходите к encode, пока не понятны pix_fmt, frame rate и interlace. Отдельно выведите список всех streams, чтобы команда -map не выбросила нужную дорожку.

ffprobe -v error -show_entries stream=index,codec_type,codec_name:format=format_name -of compact=p=0:nk=1 master.mkv

FFV1 v3 + lossless audio

Для нового архивного файла можно использовать FFV1 level 3. Один из воспроизводимых вариантов:

ffmpeg -i master.mkv -map 0 -c copy -c:v ffv1 -level 3 -slicecrc 1 -c:a flac archive-v3.mkv

Параметр -map 0 выбирает все входные потоки. Базовое -c copy оставляет не переопределённые потоки без перекодирования; затем -c:v ffv1 создаёт новый lossless видеопоток, -level 3 задаёт FFV1 v3, -slicecrc 1 включает CRC для slices, а -c:a flac losslessly перекодирует аудио. Если нужно сохранить исходный аудиобитстрим, замените последнее на -c:a copy — при условии совместимости с выбранным контейнером.

Не добавляйте -pix_fmt «по совету из интернета», если не знаете исходное значение. FFmpeg способен сохранить или преобразовать pixel format в зависимости от filters/encoder negotiation. После encode обязательно сравните pix_fmt через ffprobe.

Remux без изменения видеопотока

Когда нужен только другой контейнер, указывают -c copy. Синтаксис выглядит просто, но результат зависит от всех потоков:

ffmpeg -i input.mkv -map 0 -c copy output.

При remux проблема может возникнуть не в FFV1, а в другой дорожке. Target container может принимать FFV1 video, но отклонять исходный audio codec. Поэтому нельзя считать «MKV → MOV без потерь» универсальной операцией до анализа каждой дорожки. Для несовместимого звука можно сохранить video copy, а только audio перекодировать в допустимый lossless или PCM-формат.

FFV1 → H.264/MP4 для просмотра

Для телефона, браузера или обычного обмена чаще нужна компактная производная. Пример:

ffmpeg -i master.mkv -map 0:v:0 -map 0:a? -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k share.mp4

Это не lossless-копия. В примере явно задан yuv420p ради широкой совместимости, поэтому высокобитный 4:2:2/4:4:4 source будет преобразован ещё и по pixel format. H.264 с CRF 18 здесь служит ориентиром для качественной access-copy, но реальная достаточность зависит от материала и назначения. Архивный FFV1-мастер храните отдельно. Если нужны субтитры, главы или дополнительные аудиодорожки, добавьте их осознанно и проверьте, поддерживает ли MP4 выбранные типы потоков.

FFV1 → ProRes/MOV для монтажной совместимости

Если конкретная NLE-система не принимает FFV1, рабочий intermediate можно сделать в ProRes. Для 10-bit 4:2:2 входа практический пример выглядит так:

ffmpeg -i master.mkv -map 0:v:0 -map 0:a? -c:v prores_ks -profile:v 3 -pix_fmt yuv422p10le -c:a pcm_s24le edit.mov

Здесь pixel format задан намеренно: команда рассчитана на 10-bit 4:2:2 рабочую цепочку. Нельзя копировать её для RGB, 12-bit, alpha или другого source без адаптации. ProRes — high-quality intermediate, но не FFV1 и не бит-идентичная копия master. Ценность этого маршрута — совместимость монтажа, а не архивная идентичность.

FrameMD5: доказательство для decoded frames

Для FFV1 → FFV1 без фильтров можно сравнить контрольные суммы каждого декодированного видеокадра:

ffmpeg -i master.mkv -map 0:v:0 -f framemd5 master.framemd5
ffmpeg -i archive-v3.mkv -map 0:v:0 -f framemd5 archive-v3.framemd5

Если файлы FrameMD5 совпадают построчно, декодированные видеокадры одинаковы. Совпадающий FrameMD5 после FFV1 → FFV1 без фильтров и без изменения pixel format означает идентичные decoded video frames. Это гораздо информативнее сравнения размеров файлов: lossless-кодирование может давать разный размер контейнера при одинаковых декодированных кадрах.

Опции FFV1, которые стоит понимать

ОпцияСмыслКогда менять
-level 3FFV1 version 3Архивный современный workflow, где нужна стандартизованная v3
-slicecrc 1CRC для slicesКогда требуется дополнительный контроль повреждений структуры FFV1
-coderВыбор варианта entropy coderТолько если есть измеренная причина по скорости/размеру/совместимости
-contextContext model 0/1После теста на собственном материале, а не как «качество»
-pix_fmtФормат пикселей outputТолько когда вы точно знаете, какой формат нужен и почему
-mapКакие streams попадут в outputПочти всегда критично для многодорожечных архивов

Плюсы:

  • максимально явное управление codec, streams, container и filters;
  • ffprobe и FrameMD5 дают воспроизводимую техническую проверку;
  • одни и те же команды легко автоматизировать для больших коллекций.

Минусы:

  • ошибка в -map, pixel format или фильтре может массово испортить результат, если сразу запускать пакет;
  • контейнерная совместимость не проверяется «по названию» — muxer может отклонить один из потоков;
  • командная строка требует дисциплины: сначала sample и validation, затем batch.

Hybrid — GUI для сложных FFmpeg /VapourSynth-подобных цепочек

Hybrid рассчитан на пользователей, которым нужен подробный графический frontend с большим числом encoder/filter options. В его наборах выходных видеокодеков встречается FFV1, а интерфейс разделяет базовые настройки, filtering, jobs и log. Для Windows/Linux это удобный компромисс между ручными командами и простым бытовым конвертером.

Главное окно Hybrid с выбором container, video и audio processing

Начните с Base: загрузите source, проверьте Default container, Video handling и Audio handling. Для FFV1 выберите lossless video output только после того, как определены chroma/bit depth исходника. Раздел Filtering используйте лишь при необходимости: resize, deinterlace или цветовая обработка превращают миграцию архива в преобразование изображения.

Задание добавляется в Jobs, а журнал Log полезен при ошибке muxer/decoder. Не игнорируйте предупреждения: интерфейс генерирует сложную командную цепочку, и при несовместимой комбинации container/audio/video именно log показывает, на каком этапе она остановилась.

Вкладки и панель Filtering в Hybrid

Плюсы:

  • FFV1 и множество technical options доступны без ручной сборки длинной команды;
  • Jobs и Log удобны для контролируемой пакетной работы;
  • подходит для сложных фильтрационных цепочек, когда простого converter недостаточно.

Минусы:

  • очень большое число настроек делает программу сложнее для первого знакомства с FFV1;
  • активированные filters могут незаметно изменить исходный pixel format или interlace;
  • перед batch-процессом обязательно нужен короткий тестовый encode и независимая проверка ffprobe.

LosslessCut — убрать фрагменты без полного перекодирования

LosslessCut полезен, если основной запрос — вырезать лишние участки, не прогоняя весь материал через новый encoder. Проект использует FFmpeg для операций с потоками. При FFV1 есть отдельная особенность: встроенный preview может показывать чёрный экран, потому что player не декодирует этот codec напрямую. Это не означает, что файл сломан.

Интерфейс LosslessCut с timeline, сегментами и кнопкой Export

Что делать при чёрном preview FFV1

Скриншот программы preview

  1. Откройте файл. Если звук/таймлайн видны, а video preview не декодируется, не перекодируйте мастер наугад.
  2. Используйте File → Convert to supported format или режим Fastest: FFmpeg-assisted playback для создания/использования proxy-представления.
  3. Расставьте границы сегментов на timeline. Проверяйте время начала и конца, а не только картинку proxy.
  4. Экспортируйте сегменты. Proxy нужен для просмотра неподдерживаемого preview; cut/export выполняется по original media, поэтому после операции проверьте codec, duration и границы сегментов.

Для intra-frame FFV1 границы обычно проще, чем у длинного GOP H.264, но контейнер, timestamps и дополнительные streams всё равно могут влиять на результат. После cut проверьте длительность, начало/конец, audio sync и codec через ffprobe.

Плюсы:

  • позволяет решать задачу удаления фрагментов без полного видеоперекодирования;
  • proxy/FFmpeg-assisted playback отделён от фактического lossless export;
  • наглядная timeline и сегменты подходят для простой технической нарезки.

Минусы:

  • встроенный preview не обязан декодировать FFV1 напрямую;
  • не предназначен для цветокоррекции, титров и сложного монтажа;
  • после cut всё равно нужна проверка timestamps, звука и stream structure.

Android: как преобразовать FFV1 на телефоне

HiFi Media Converter — локальный мобильный FFV1-конвертер

HiFi Media Converter на Android поддерживает FFV1 среди видеокодеков. Обработка выполняется на устройстве; доступны выбор video codec, output container, frame rate, batch conversion, stream copy и техническая информация о media. Это локальное мобильное приложение, а не веб-конвертер в браузере.

HiFi Media Converter: информация о файле и выбор выходного формата

https://play-lh.googleusercontent.com/eZLyNUkxBXZlmXAC1phje4rwreSICnbeBD...

HiFi Media Converter: список видеокодеков с FFV1 Lossless

https://play-lh.googleusercontent.com/wR7XRMu1vo_ixYj-7w8jegbx40jZI7WCpS...

Мобильный workflow уместен для коротких файлов и срочной подготовки совместимой копии. Большой FFV1-master может занимать десятки или сотни гигабайт, поэтому на телефоне быстро становятся ограничением свободное место, скорость накопителя, нагрев и время CPU-кодирования. Для долговременного архива лучше компьютер с проверяемой файловой системой и отдельной backup-копией.

Практический порядок

  1. Импортируйте исходный контейнер и откройте техническую информацию. Убедитесь, что видеокодек определяется как FFV1.
  2. Для lossless output откройте настройки video codec и выберите FFV1. Для совместимой копии выберите H.264/H.265 только с пониманием, что это lossy derivative.
  3. Выберите output container из поддерживаемых приложением. Смотрите не только на расширение: для stream copy container должен принимать исходные video/audio streams.
  4. Не меняйте resolution и frame rate без необходимости. Любой resize изменяет decoded pixels, даже если конечный codec снова FFV1.
  5. Запустите один тестовый файл, затем откройте результат в Media Info и сравните codec, resolution, frame rate и audio. Только после этого запускайте batch.

Плюсы:

  • FFV1 доступен в списке video codec, поэтому его выбирают как способ кодирования, а не как расширение файла;
  • локальная обработка не требует отправлять архивный материал на сторонний сервер;
  • есть batch и stream copy для подходящих задач.

Минусы:

  • большие lossless-файлы быстро расходуют память и нагружают мобильный процессор;
  • мобильный интерфейс менее удобен для детального контроля color metadata и многочасовых архивов;
  • после важного преобразования лучше независимо проверить результат на компьютере через ffprobe/FrameMD5.

iPhone и iPad: как посмотреть FFV1

KMPlayer — мобильный просмотр без обещания полноценного FFV1-монтажа

KMPlayer для iPhone/iPad поддерживает FFV1 среди видеокодеков и работает с распространёнными контейнерами. Его место в этой инструкции — просмотр и проверка воспроизводимости на мобильном устройстве. Декодирование файла не превращает плеер в полноценный FFV1-конвертер или монтажную систему.

Интерфейс KMPlayer на iPhone: раздел Files и Import External Files

  1. Передайте MKV/MOV через Files, облачное хранилище или другой стандартный механизм iOS, не меняя расширение вручную.
  2. Откройте файл в KMPlayer и проверьте начало, середину, конец и аудиосинхронизацию.
  3. Если один контейнер не открывается, сначала подтвердите FFV1 и остальные streams на компьютере. Codec support и container support — разные уровни совместимости.
  4. Для публикации в приложениях, где FFV1 не поддерживается, создайте отдельную H.264/H.265-производную на компьютере; master оставьте без изменений.

Плюсы:

  • реальный мобильный FFV1 decoder для сценария просмотра;
  • поддержка распространённых контейнеров делает приложение удобным для быстрой проверки;
  • не требует превращать архивный master в lossy-копию только ради просмотра на компьютере.

Минусы:

  • плеер не заменяет технический converter или NLE;
  • конкретная комбинация FFV1 с аудио, субтитрами и container может иметь собственные ограничения;
  • для строгой проверки параметров и decoded-frame identity нужен desktop workflow.

Как редактировать FFV1 и не потерять данные незаметно

Stream copy, lossless re-encode и визуальное редактирование — три разных уровня

Самая частая терминологическая ошибка — назвать «без потерь» любую операцию, где в output снова написано FFV1. На самом деле нужно различать три ситуации. При stream copy исходный compressed bitstream переносится без пересчёта. При FFV1 → FFV1 кадры декодируются и кодируются заново, но decoded pixels могут остаться идентичными. При crop, resize, deinterlace, color correction, speed change или compositing сами кадры меняются; FFV1 лишь сохраняет уже изменённый результат без дополнительной lossy-квантизации.

ОперацияПерекодирование видеоМожно ожидать одинаковые decoded framesЧто проверить
Remux / stream copyНетДа, видеопоток тот жеcodec, stream hash, container, audio/subtitles
FFV1 → FFV1 без filtersДа, losslessДа, при сохранённом pixel format и корректной цепочкеFrameMD5, pix_fmt, frame count
Обрезка без re-encodingНет для сохранённых участковДа для оставшихся кадровграницы, timestamps, audio sync
Resize / crop / deinterlaceДаНет — изображение намеренно измененоновые размеры, field order, visual QC
FFV1 → H.264/H.265Да, lossyНеткачество производной, совместимость, сохранность master

Pixel format и chroma subsampling

FFV1 способен хранить разные YUV и RGB-представления, поэтому output «FFV1» сам по себе не сообщает, сохранилась ли цветовая структура. Например, преобразование yuv422p10le в yuv420p одновременно снижает chroma resolution и разрядность. После него новый FFV1 losslessly хранит уже упрощённые кадры — исходные значения не вернутся.

При оцифровке аналогового SD-видео 4:2:2 часто используется как рабочее представление. Если конечная задача — архивный master, оставляйте исходное chroma format. Для web-производной 4:2:0 может быть нормальным целевым компромиссом, но она должна называться производной, а не заменой master.

Bit depth: почему 10-bit → 8-bit нельзя считать нейтральной операцией

Разрядность определяет количество значений, доступных для компонент. Если pipeline принимает 10-bit FFV1, но фильтр или encoder output работает только в 8-bit, часть числовых уровней будет преобразована. Визуально разница может быть незаметна на обычном кадре, но decoded data уже другая. Поэтому до обработки high-bit-depth источника проверяйте pix_fmt на входе и выходе, а не ориентируйтесь на фразу «lossless codec».

Особенно осторожно действуйте в GUI: некоторые программы автоматически выбирают удобный для preview/output формат. Если интерфейс не показывает битность, сделайте короткий sample, сохраните его и проверьте ffprobe. Такой тест занимает минуты и предотвращает часы неправильного batch encode.

Чересстрочное видео и VHS: не включайте deinterlace автоматически

Источники с VHS, Video8, телевизионных записей и части SD-capture могут быть interlaced. В архивной копии порядок полей является свойством исходного сигнала, а деинтерлейсинг создаёт новые progressive-кадры. Даже хороший алгоритм не является обратимой операцией. Поэтому для preservation обычно разумно сохранить interlaced FFV1-master и отдельно сделать progressive derivative для просмотра.

  • проверьте field_order через ffprobe или Scan type/Scan order в MediaInfo;
  • не включайте Deinterlace в Avidemux, XMedia Recode, Hybrid, Shutter Encoder или NLE только потому, что preview показывает «гребёнку»;
  • если деинтерлейсинг нужен для публикации, создайте отдельный output и явно назовите его derivative;
  • после обработки проверьте motion-участки, потому что ошибки field order заметнее всего на движении.

Alpha, RGB и цветовые метаданные

FFV1 может использоваться не только для обычного YUV-видео. В профессиональных цепочках встречаются RGB/RGBA и высокобитные представления. Если исходник содержит alpha, нельзя выбрать «обычный 4:2:0 video» и ожидать сохранения прозрачности. Аналогично потеря color primaries/transfer/matrix metadata может привести к неверной интерпретации изображения в другой программе даже при совпадающих числах пикселей.

Перед миграцией таких материалов сохраните вывод ffprobe с pix_fmt и color_*. После рендера повторите запрос. Для критичных RGB/alpha master ограничивайтесь программами и output modes, где соответствующее представление явно поддерживается; не используйте универсальный preset неизвестного назначения.

Аудио, субтитры, главы и вложения

FFV1 описывает только видеопоток. Matroska-master может одновременно содержать несколько аудиодорожек, субтитры, главы, теги, изображения-вложения и шрифты. Команда или GUI, ориентированные только на Video, легко создают файл с правильными кадрами, но неполным содержимым.

Для FFmpeg используйте осознанный -map. В GUI сверяйте вкладки Audio/Subtitle/Chapter. После завершения сравните количество streams. Если target container не умеет хранить одну из дорожек, решите проблему явно: смените container, сохраните компонент отдельно или перекодируйте только несовместимый поток. Не позволяйте программе молча выбросить его.

Как конвертировать FFV1 под конкретную задачу

Выбор output начинается не с названия популярного формата, а с цели. Архив, монтаж и отправка в мессенджер требуют разных компромиссов. Один файл редко оптимален для всех трёх сценариев, поэтому практичная схема — immutable master плюс производные.

ЗадачаРекомендуемый путьКачество относительно masterЧто важно
Сохранить/нормализовать masterFFV1 v3 в проверенном контейнереLosslesspixel format, streams, FrameMD5, CRC
Поменять контейнерRemux/stream copyВидео не меняетсясовместимость каждого video/audio/subtitle stream
Смонтировать в совместимой NLEПрямой FFV1 или ProRes intermediateПрямой FFV1 — lossless; ProRes — intermediatebit depth, chroma, timeline frame rate
Сделать web/phone-копиюH.264/H.265 в MP4/MOVLossyразмер, совместимость, хранение исходного master
Удалить лишние фрагментыLosslessCut, Avidemux Copy, Shutter Encoder Cut without re-encodingБез повторного video encodeграницы, timestamps, audio sync
Пакетная миграцияFFmpeg/Shutter Encoder/HandBrake/Hybrid после тестаЗависит от выбранного режимаоднородность источников, logs, validation

FFV1 → H.264/MP4: когда важнее совместимость

H.264/MP4 обычно проще воспроизводится в браузерах, телефонах, телевизорах и соцсетях. Такое преобразование оправдано для access-copy, но оно не заменяет FFV1-master. Прежде чем удалить большой исходник ради экономии места, ответьте на вопрос: сможете ли вы повторить оцифровку или получить исходные данные снова? Для уникальной плёнки, VHS или мастер-записи ответ часто отрицательный.

При создании H.264-производной сохраните исходную частоту кадров; не уменьшайте разрешение, если это не требуется; проверьте деинтерлейсинг; выберите понятный audio codec. Если source 10-bit 4:2:2, конечная площадка может требовать 8-bit 4:2:0 — это нормальная совместимая derivative, но технически она существенно отличается от архива.

FFV1 → ProRes/MOV: когда редактор не принимает FFV1

ProRes широко используется как монтажный intermediate. Его смысл в этом сценарии — снять проблему совместимости с NLE и избежать сильного дополнительного сжатия, характерного для distribution-кодеков. Однако ProRes не является математически lossless заменой FFV1. Оригинал сохраняйте до завершения проекта и финальной проверки.

Для 10-bit 4:2:2 source выбирайте соответствующий ProRes profile/pixel format. Если FFV1 был RGB/RGBA или 12/16-bit, универсальная команда для 10-bit 4:2:2 уже не подходит. Сначала определите target pipeline редактора, затем делайте intermediate.

FFV1 → FFV1: нормализация и архивная миграция

Повторное FFV1-кодирование имеет смысл, когда нужно привести разнородные старые файлы к одному современному профилю, добавить v3/slice CRC, стандартизовать container или избавиться от проблемного старого wrapper. Главный критерий успеха — не уменьшение размера, а сохранение decoded frames и нужных metadata/streams.

  1. Сохраните исходный файл только для чтения и сделайте backup.
  2. Зафиксируйте ffprobe/MediaInfo.
  3. Кодируйте один sample в целевую схему.
  4. Сравните FrameMD5 видео и параметры потоков.
  5. Проверьте воспроизведение минимум в двух независимых декодерах.
  6. Только после этого запускайте batch, сохраняя logs и результаты проверки.

Remux: как сменить container без видеоперекодирования

Remux полезен, когда приложение понимает FFV1, но не принимает текущий container. В этом случае video stream можно оставить copy. Однако у контейнера есть правила для audio/subtitles/attachments. Поэтому «поменять MKV на MOV» — не одна операция, а проверка совместимости каждого stream.

Если video copy допустим, а audio — нет, компромисс может быть таким: оставить FFV1 bitstream без изменений и перекодировать только audio в PCM или другой lossless формат, поддерживаемый target container. Тогда формулировка результата точная: видео не перекодировано, аудио изменило упаковку/codec. Это лучше, чем безосновательно называть весь файл «полной копией».

Как проверить результат: от простого просмотра до FrameMD5

Уровень 1. Структура и параметры через ffprobe

Сравните до/после: codec_name, pix_fmt, width/height, frame rate, field order, color metadata, количество video/audio/subtitle streams. Для FFV1-master это минимальная техническая проверка. Если значение изменилось, сначала выясните почему, а не продолжайте batch.

ffprobe -v error -show_entries stream=index,codec_type,codec_name,pix_fmt,width,height,r_frame_rate,field_order,color_range,color_space,color_transfer,color_primaries -of default=noprint_wrappers=1 output.mkv

Уровень 2. FrameMD5 для decoded video

FrameMD5 вычисляется после декодирования. Поэтому два FFV1-файла могут иметь разный размер и разные compressed bytes, но одинаковый FrameMD5 — это нормальная ситуация для lossless re-encode. И наоборот, одинаковое разрешение и codec_name не гарантируют совпадения кадров: 10-bit → 8-bit или незаметный filter изменят hashes.

Сравнивайте FrameMD5 только там, где ожидаете одинаковые decoded frames. После crop, color correction, deinterlace или H.264 encode несовпадение ожидаемо и не является ошибкой проверки.

Уровень 3. Checksum всего файла отвечает на другой вопрос

SHA-256 всего контейнера полезен для контроля хранения и копирования: он показывает, изменился ли конкретный файл побайтно. Но после remux или нового FFV1 encode контейнер закономерно будет другим, даже если видео декодируется идентично. Поэтому архивная схема часто использует два типа контроля: file checksum для неизменяемого объекта и FrameMD5 для сравнения decoded video после миграции.

Уровень 4. Визуальная и звуковая проверка

  • откройте первые секунды: ошибки заголовка/container проявляются сразу;
  • перейдите в середину и конец: проверьте seek и отсутствие преждевременного обрыва;
  • просмотрите участок с быстрым движением: он помогает заметить ошибочный deinterlace или field order;
  • проверьте тени/градиенты: здесь легче увидеть проблемы bit depth/banding;
  • послушайте речь или хлопок рядом с видимым действием: так заметнее рассинхрон audio/video;
  • переключите все аудиодорожки и субтитры, если они были в source.

Лучший контроль сочетает автоматическую и ручную части. Hash не заметит, что вы выбрали неправильный target по смыслу, а визуальный просмотр не докажет 10-bit или сохранение всех метаданных. Вместе они закрывают разные классы ошибок.

Частые ошибки при работе с FFV1

Переименование .mkv в .mp4 вместо конвертации

Смена суффикса не пересобирает container и не меняет codec. Иногда программа всё равно угадает формат по заголовку, но это не делает файл корректным MP4. Для смены container используйте muxer/rewrap; для смены codec — encoder.

Поиск отдельного «FFV1 codec installer» как обязательного шага

Современные FFmpeg, VLC media player, Shutter Encoder, Avidemux и другие совместимые приложения имеют собственный путь декодирования. Системный codec pack нужен только конкретному legacy-приложению. Установка старого пакета из случайного каталога не является универсальным решением.

Считать FFV1 магическим восстановлением качества

Перекодирование H.264 → FFV1 прекращает дальнейшие lossy-потери на этом конкретном этапе, но не восстанавливает то, что H.264 уже удалил. Используйте FFV1 как preservation/intermediate codec для тех данных, которые реально есть на входе.

Случайно сделать 10-bit → 8-bit

Проверяйте pix_fmt. Нельзя судить по картинке viewer: на обычном мониторе два кадра могут выглядеть одинаково, хотя значения были квантованы.

Случайно сделать 4:2:2 → 4:2:0

Это типично при переходе к consumer/web preset. Для производной допустимо, для archive master — изменение данных. Храните названия файлов и каталоги так, чтобы master и access-copy нельзя было перепутать.

Автоматически деинтерлейсить VHS

«Гребёнка» на paused frame не означает, что мастер надо необратимо обработать. Сохраните interlaced capture; progressive viewing copy создайте отдельно. Особенно важно не менять field order неизвестным фильтром.

Потерять второй звук, субтитры или главы

Многие простые конвертеры выбирают первую дорожку. Для многопоточного Matroska используйте ffprobe и явный mapping либо GUI с отдельными Audio/Subtitle tabs. После output сравните количество streams.

Считать любой remux возможным

Контейнер проверяет не только video. FFV1 video может быть допустим для MOV, а исходный FLAC audio — нет. Если muxer сообщает несовместимый codec, не обходите ошибку переименованием; меняйте только проблемный stream или выбирайте другой container. Для lossless-видеомиграции допустима схема -c:v copy с отдельным преобразованием только аудио.

Запустить batch до тестового файла

Ошибка в preset, field order или map размножается на весь архив. Сначала один sample, затем ffprobe/FrameMD5/просмотр, и только потом очередь. Для неоднородных источников делайте отдельные профили.

Отправить уникальный master в непроверенный online converter

Для FFV1 не стоит отправлять уникальный master в случайный браузерный конвертер. Онлайн-способ в эту инструкцию не включён: для такой операции нужен сервис с явно обозначенным FFV1 input и предсказуемым управлением codec, pixel format, дополнительными streams и хранением загруженного материала. Для архивных и личных записей используйте локальный workflow.

Какой способ выбрать

Сравнивать инструменты нужно по задаче, а не по числу кнопок. ВидеоМАСТЕР стоит первым как простой Windows-сценарий для монтажа заранее подготовленной совместимой производной. Архивную FFV1-master копию сохраняют отдельно; для прямой работы с FFV1, lossless validation и профессионального монтажа выбирают инструменты, в которых можно контролировать codec, контейнер, pixel format и streams.

СпособЛучший сценарийFFV1 напрямуюГлавное ограничение
ВидеоМАСТЕРПростой монтаж и экспорт уже подготовленной совместимой производнойНет: используется совместимая производнаяне заменяет архивный FFV1 workflow
XMedia RecodeТочный GUI-transcode/stream copy на WindowsДа, в FFV1-oriented workflowнужно внимательно контролировать множество параметров
DaVinci ResolveПолноценный timeline-монтажДа: MOV/MKV decode и encodeизбыточен для простого remux
AvidemuxПростая обрезка и фильтрыДаfilters требуют нового encode и контроля pixel format
Shutter EncoderАрхивный GUI, rewrap, cut, FrameMD5Дане полноценный NLE
HandBrakeОчередь transcoding, включая FFV1 encoderДане основной инструмент для remux
VLC media playerПросмотр и техническая sanity-checkДекодирование для просмотране монтаж и не строгая validation-система
FFmpegМаксимальный контроль, batch, remux, FrameMD5Дакомандная строка требует дисциплины
HybridПродвинутый GUI для сложных encoder/filter chainsДавысокий порог настройки
LosslessCutУдаление фрагментов без полного видеоперекодированияОперации через FFmpeg; preview может требовать proxyне сложный редактор
HiFi Media ConverterAndroid-конвертация на устройствеДаресурсы и storage телефона
KMPlayerПросмотр на iPhone/iPadDecode для воспроизведенияне инструмент архивного encode

Для новичка на Windows

Если нужен ролик для обычного использования, сохраните master отдельно, сделайте совместимую MP4-производную и редактируйте её в ВидеоМАСТЕР. Если задача — сохранить именно FFV1, переходите к Shutter Encoder или FFmpeg: там можно явно задать FFV1 и контролировать, что копируется, а что кодируется заново.

Для архива и оцифровки

Выбирайте FFmpeg или Shutter Encoder. Фиксируйте ffprobe/MediaInfo, используйте FFV1 v3, не меняйте bit depth/chroma/interlace без причины, сохраняйте все нужные streams и проверяйте FrameMD5. Для большого архива храните logs и checksums исходных файлов.

Для полноценного монтажа

DaVinci Resolve подходит, если текущая комбинация MOV/MKV FFV1 импортируется с нужным pixel format. Для несовместимой NLE создавайте ProRes/intermediate отдельно, не уничтожая master.

Для простой обрезки

LosslessCut, Avidemux в режиме Copy или Shutter Encoder с Cut without re-encoding позволяют избежать полного видеоперекодирования. После операции проверяйте границы и timestamps.

Для пакетной обработки

FFmpeg наиболее воспроизводим: команда хранится вместе с логами и применяется одинаково. HandBrake, XMedia Recode, Hybrid и Shutter Encoder дают очереди, но перед каждой серией всё равно нужен контроль одного sample.

Для телефона

На Android HiFi Media Converter подходит для реального FFV1 encode/decode. На iPhone/iPad KMPlayer разумнее рассматривать как player. Большие архивные master лучше не переносить в мобильный workflow без необходимости из-за места и времени обработки.

Практические сценарии

Сценарий 1. VHS-capture в FFV1 нужно сохранить и сделать копию для семьи

  1. Оставьте исходный FFV1 capture неизменным и создайте checksum файла.
  2. Проверьте field order, 4:2:2 и bit depth через ffprobe/MediaInfo.
  3. Если архив требует нормализации, сделайте FFV1 v3 copy в Matroska через FFmpeg или Shutter Encoder без deinterlace.
  4. Сравните FrameMD5 между исходным decoded video и новым FFV1.
  5. Создайте отдельную H.264/MP4 access-copy. Для неё можно выполнить deinterlace, если просмотр на progressive-экранах этого требует.
  6. Редактируйте access-copy в ВидеоМАСТЕР: вырежьте пустые участки, добавьте нужные титры, экспортируйте семейную версию.
  7. Храните master и access-copy в разных каталогах с понятными именами.

Сценарий 2. FFV1/MKV не импортируется в монтажную систему

  1. Подтвердите, что codec действительно FFV1 и определите pix_fmt.
  2. Проверьте, принимает ли DaVinci Resolve эту комбинацию напрямую. Если да, избегайте лишнего intermediate.
  3. Если целевая система FFV1 не принимает, преобразуйте master в подходящий ProRes/DNxHR intermediate с сохранением нужной разрядности/chroma.
  4. Импортируйте intermediate и смонтируйте проект.
  5. Не удаляйте FFV1-master: intermediate создан ради совместимости, а не как archival replacement.

Сценарий 3. Нужно только поменять MKV-контейнер

  1. Выведите список video/audio/subtitle streams.
  2. Проверьте, допустимы ли все эти codecs в target container.
  3. Сначала попробуйте stream copy на коротком sample.
  4. Если muxer отклоняет audio, оставьте video copy и решите вопрос только со звуком либо выберите другой container.
  5. Сравните codec/pix_fmt до и после; при video copy они должны остаться теми же.

Сценарий 4. Нужно удалить 15 секунд в начале без нового поколения кодирования

  1. Откройте файл в LosslessCut, Avidemux или Shutter Encoder.
  2. Если FFV1 не показывается во встроенном preview LosslessCut, включите FFmpeg-assisted playback/proxy, не заменяя original.
  3. Установите границу cut и экспортируйте без видеоперекодирования.
  4. Проверьте первый кадр, audio sync, длительность и codec output.

Сценарий 5. Разнородный архив нужно привести к одной схеме

Не создавайте один preset для всех файлов сразу. Сначала сгруппируйте источники по pixel format, bit depth, interlace и audio layout. Для каждой группы подготовьте sample, выполните FFV1 v3 encode, FrameMD5 и проверку streams. Только после этого запускайте отдельные очереди. Так схема остаётся повторяемой и не заставляет 8-bit progressive и 10-bit interlaced материалы проходить через один компромиссный profile.

Дополнительные критерии архивного workflow

Имена файлов и provenance

Имя output должно показывать роль файла, но не заменять metadata. Например, суффиксы _master_ffv1v3, _access_h264 и _edit_prores уменьшают риск перепутать назначения. Рядом полезно хранить текстовый manifest с датой операции, исходным именем, командой/инструментом, container, codec, pixel format и checksum master.

Почему размер файла — плохой критерий качества FFV1

Два lossless encode одного video могут занимать разный объём из-за entropy settings, slices, metadata и audio. Меньший FFV1-файл не обязательно «хуже», а больший не обязательно «качественнее». Если decoded frames совпадают, различие размера отражает эффективность упаковки и сопутствующие данные. Для контроля используйте FrameMD5 и stream metadata, а не сравнение мегабайтов.

Когда повторное кодирование вообще не нужно

Если файл корректно открывается, container поддерживается в долгосрочной системе хранения, а metadata/streams в порядке, миграция «потому что FFV1 старый» может быть лишней. Иногда правильная операция — сделать checksum, backup и документировать текущий объект. Перекодирование оправдано конкретной задачей: стандартизация v3, исправление wrapper, совместимость, нормализация коллекции или создание derivative.

Две независимые копии лучше одного идеально настроенного encode

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

FAQ

Какое расширение у FFV1?

Единого расширения «FFV1» нет. Это видеокодек внутри контейнера. На практике встречаются MKV/Matroska, MOV и другие комбинации, поддерживаемые конкретными программами и muxer. Проверяйте codec внутри файла.

Чем FFV1 отличается от MKV?

FFV1 кодирует видеокадры; MKV — контейнер, который упаковывает video, audio, subtitles и metadata. MKV может содержать FFV1, H.264, HEVC и другие кодеки.

FFV1 лучше H.264?

Для архивного master FFV1 ценен отсутствием lossy-потерь и intra-frame структурой. Для распространения H.264 обычно значительно компактнее и совместимее. «Лучше» определяется задачей: preservation и distribution требуют разных оптимумов.

Почему FFV1-файл такой большой?

Lossless-кодек обязан сохранять всю входную информацию, поэтому не может применять те же необратимые методы уменьшения данных, что H.264/H.265. Размер также зависит от разрешения, шума, bit depth, chroma, frame rate и содержимого кадра.

Можно ли уменьшить FFV1 без потери качества?

Иногда новое FFV1-кодирование с другими entropy/slice settings меняет размер без изменения decoded frames, но выигрыш зависит от материала. Не снижайте resolution, bit depth или chroma ради уменьшения и не называйте это lossless относительно исходника. Проверяйте FrameMD5.

Можно ли открыть FFV1 в браузере?

Обычный браузерный media stack не является надёжным универсальным FFV1 player. Для просмотра используйте VLC media player, KMPlayer на iOS или другой плеер с поддержкой FFV1; для web-публикации делайте H.264/H.265 derivative.

Можно ли хранить FFV1 в MOV?

Да, FFV1 video поддерживается в MOV в ряде профессиональных инструментов. Но возможность mux зависит и от остальных streams. Например, несовместимый audio codec может помешать созданию MOV даже при допустимом FFV1 video.

Зачем FFV1 v3 нужен slice CRC?

CRC помогает обнаруживать повреждение отдельных slices в структуре потока. Это не заменяет checksum всего файла и backup, но добавляет ещё один уровень контроля для архивного кодека.

Что лучше для монтажа: FFV1 или ProRes?

Если NLE напрямую принимает нужный FFV1 container/pixel format, дополнительный intermediate не обязателен. Если нет, ProRes удобен как монтажный формат. FFV1 остаётся master, а ProRes — рабочей копией ради совместимости.

Вернётся ли качество, если H.264 перекодировать в FFV1?

Нет. FFV1 сохранит декодированные кадры H.264 без нового lossy-шагa, но уже утраченные H.264 детали восстановить не может.

Почему программа видит MKV, но не открывает мой FFV1?

Поддержка container и codec независима. Программа может читать структуру MKV, но не иметь FFV1 decoder или не поддерживать конкретный pixel format. Проверьте codec/pix_fmt через ffprobe и выберите совместимый decoder или intermediate.

Как доказать, что FFV1 → FFV1 не изменил видеокадры?

Сгенерируйте FrameMD5 для source и output и сравните строки. Одновременно сверяйте frame count, pix_fmt и streams. Совпадение decoded-frame hashes — сильное подтверждение того, что видеокадры сохранились.

Нужно ли ставить codec pack в Windows?

Не обязательно. Многие современные приложения декодируют FFV1 встроенными библиотеками. Codec pack нужен только тогда, когда конкретное старое приложение зависит от системных DirectShow/VfW-компонентов.

Можно ли просто удалить оригинал после конвертации?

Для уникального архивного материала — только после заранее определённой политики хранения, проверки нового master и наличия независимой backup-копии. H.264 access-copy или ProRes intermediate не должны автоматически заменять FFV1-master.

Итог: FFV1 требует не «открывашку», а правильно выбранный workflow

Для обычного Windows-монтажа удобнее сохранить FFV1 как master, подготовить совместимую производную и работать с ней в ВидеоМАСТЕР. Для прямого архивного FFV1-процесса сильнее FFmpeg и Shutter Encoder: они разделяют encode, rewrap и validation и позволяют доказать сохранность decoded frames. Для полноценного timeline-монтажа подходит DaVinci Resolve при поддерживаемом MOV/MKV FFV1, для простой технической обработки — Avidemux или LosslessCut.

Главное правило не связано с конкретной программой: до операции фиксируйте codec, pixel format, bit depth, field order и streams; после — проверяйте их снова. Не путайте container с codec, не переименовывайте расширение вместо remux, не снижайте разрядность или chroma незаметно и не удаляйте master ради более совместимой производной. Тогда FFV1 действительно выполняет свою задачу — сохраняет исходные данные, а не просто добавляет слово lossless в свойства файла.

Тип контента: 

Оставте свой отзыв о Что такое FFV1 и как с ним работать: просмотр, монтаж, конвертация и проверка видео на компьютере и смартфоне

CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.