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 удобен, когда нужно увидеть структуру файла без перекодирования. Откройте ролик и переключите представление так, чтобы были видны отдельные потоки. В блоке 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 и другие варианты. Затем при необходимости откройте Параметры и только после проверки задания нажмите Конвертировать.

После экспорта сравните длительность, разрешение, звук и первые/средние/последние кадры с рабочим исходником. Для архивного мастера проверка другая: там важны 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, оставить аудио без изменений или собрать новый контейнер из существующих дорожек.

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

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

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

Плюсы:
- отдельные вкладки для видео, аудио, субтитров и фильтров помогают не терять дополнительные потоки;
- режим Copy позволяет отличать remux/stream copy от полноценного кодирования;
- очередь подходит для повторяемых задач после предварительной проверки профиля.
Минусы:
- большое число параметров увеличивает риск случайно включить resize, deinterlace или несовместимый pixel format;
- не каждая комбинация кодека, контейнера и аудиоформата допустима; это нужно проверять до длинной обработки;
- для скриптуемой валидации больших архивов командный FFmpeg обычно прозрачнее.
3. DaVinci Resolve — полноценный монтаж с прямой поддержкой FFV1
DaVinci Resolve нужен, когда требуется не просто обрезать начало и конец, а вести многодорожечный монтаж, работать со звуком, цветом и титрами. В таблицах поддерживаемых кодеков Blackmagic FFV1 указан для MOV и MKV с декодированием и кодированием; доступны разные YUV- и RGBA-представления. Это делает программу существенно более подходящей для профессиональной работы с FFV1, чем универсальный бытовой конвертер.

https://media.licdn.com/dms/image/v2/D5622AQHpCLfpBGnMuQ/feedshare-shrin...
Монтаж и экспорт FFV1
- На странице Media добавьте исходный MOV/MKV с FFV1 в Media Pool. Если клип не импортируется, сначала сверяйте container, codec и pixel format, а не меняйте расширение.
- Перейдите на страницу Edit, создайте timeline и разместите клип. До монтажа проверьте project/timeline frame rate: менять его после начала проекта неудобно и часто нежелательно.
- Выполните монтаж. Любая цветокоррекция, масштабирование, шумоподавление, деинтерлейсинг или композитинг требуют нового рендера; это уже не stream copy.
- На странице Deliver выберите пользовательский экспорт. Если задача — снова получить FFV1, выберите совместимый MOV или MKV и Codec: FFV1, затем проверьте доступный тип YUV/RGBA и разрядность.
- Добавьте задание через 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 и контейнер.

Обрезка без лишней обработки
Откройте файл через меню File. Для выбора фрагмента используйте маркеры A и B. Если в Video Output стоит Copy, видеопоток не перекодируется; это самый щадящий режим там, где границы и контейнер позволяют корректно выполнить копирование. После включения видеоряда фильтров режим Copy уже не может сохранить обработанные кадры — нужен encoder.
Фильтры и FFV1 output
Нажмите Filters, если требуется crop, resize, deinterlace или цветовая операция. Перед применением deinterlace к VHS/SD-master определите field order и решите, нужен ли вообще progressive-вывод: архивную копию обычно разумнее хранить без необратимого деинтерлейсинга, а progressive-версию делать отдельно для просмотра.


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

Плюсы:
- раздельные 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.

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

Панель настроек содержит множество операций, способных изменить изображение: масштабирование, поворот, 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 доступ к кадрам проще, однако итог всё равно нужно воспроизвести и проверить.

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


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

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

Плюсы:
- знакомый 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 его задача — быстро проверить воспроизведение, звук и потоковую информацию; полноценный монтаж или архивную миграцию лучше выполнять другими инструментами.

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

Плюсы:
- быстрая проверка файла без монтажа и без системной установки отдельного FFV1 decoder;
- доступ к Codec Information и Media Information;
- работает как простой sanity-check после конвертации.
Минусы:
- не заменяет MediaInfo/ffprobe для полного контроля pixel format и всех технических полей;
- не является полноценным видеоредактором;
- успешное воспроизведение само по себе не доказывает lossless-идентичность.
Linux: FFV1 через командную строку и технические GUI
FFmpeg — самый контролируемый способ кодировать, remux и проверять FFV1
На Linux FFmpeg особенно удобен тем, что одна и та же команда явно показывает, какие потоки читаются, какие копируются, а какие кодируются заново. Это снижает риск скрытого preset-преобразования. Тот же подход работает на Windows и macOS, поэтому команды полезно сохранять как воспроизводимую запись параметров архивного процесса.
Сначала инспекция

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.mkvFFV1 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 3 | FFV1 version 3 | Архивный современный workflow, где нужна стандартизованная v3 |
-slicecrc 1 | CRC для slices | Когда требуется дополнительный контроль повреждений структуры FFV1 |
-coder | Выбор варианта entropy coder | Только если есть измеренная причина по скорости/размеру/совместимости |
-context | Context 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 это удобный компромисс между ручными командами и простым бытовым конвертером.

Начните с 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 показывает, на каком этапе она остановилась.

Плюсы:
- FFV1 и множество technical options доступны без ручной сборки длинной команды;
- Jobs и Log удобны для контролируемой пакетной работы;
- подходит для сложных фильтрационных цепочек, когда простого converter недостаточно.
Минусы:
- очень большое число настроек делает программу сложнее для первого знакомства с FFV1;
- активированные filters могут незаметно изменить исходный pixel format или interlace;
- перед batch-процессом обязательно нужен короткий тестовый encode и независимая проверка ffprobe.
LosslessCut — убрать фрагменты без полного перекодирования
LosslessCut полезен, если основной запрос — вырезать лишние участки, не прогоняя весь материал через новый encoder. Проект использует FFmpeg для операций с потоками. При FFV1 есть отдельная особенность: встроенный preview может показывать чёрный экран, потому что player не декодирует этот codec напрямую. Это не означает, что файл сломан.

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

- Откройте файл. Если звук/таймлайн видны, а video preview не декодируется, не перекодируйте мастер наугад.
- Используйте File → Convert to supported format или режим Fastest: FFmpeg-assisted playback для создания/использования proxy-представления.
- Расставьте границы сегментов на timeline. Проверяйте время начала и конца, а не только картинку proxy.
- Экспортируйте сегменты. 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. Это локальное мобильное приложение, а не веб-конвертер в браузере.

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

https://play-lh.googleusercontent.com/wR7XRMu1vo_ixYj-7w8jegbx40jZI7WCpS...
Мобильный workflow уместен для коротких файлов и срочной подготовки совместимой копии. Большой FFV1-master может занимать десятки или сотни гигабайт, поэтому на телефоне быстро становятся ограничением свободное место, скорость накопителя, нагрев и время CPU-кодирования. Для долговременного архива лучше компьютер с проверяемой файловой системой и отдельной backup-копией.
Практический порядок
- Импортируйте исходный контейнер и откройте техническую информацию. Убедитесь, что видеокодек определяется как FFV1.
- Для lossless output откройте настройки video codec и выберите FFV1. Для совместимой копии выберите H.264/H.265 только с пониманием, что это lossy derivative.
- Выберите output container из поддерживаемых приложением. Смотрите не только на расширение: для stream copy container должен принимать исходные video/audio streams.
- Не меняйте resolution и frame rate без необходимости. Любой resize изменяет decoded pixels, даже если конечный codec снова FFV1.
- Запустите один тестовый файл, затем откройте результат в 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-конвертер или монтажную систему.

- Передайте MKV/MOV через Files, облачное хранилище или другой стандартный механизм iOS, не меняя расширение вручную.
- Откройте файл в KMPlayer и проверьте начало, середину, конец и аудиосинхронизацию.
- Если один контейнер не открывается, сначала подтвердите FFV1 и остальные streams на компьютере. Codec support и container support — разные уровни совместимости.
- Для публикации в приложениях, где 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 | Что важно |
|---|---|---|---|
| Сохранить/нормализовать master | FFV1 v3 в проверенном контейнере | Lossless | pixel format, streams, FrameMD5, CRC |
| Поменять контейнер | Remux/stream copy | Видео не меняется | совместимость каждого video/audio/subtitle stream |
| Смонтировать в совместимой NLE | Прямой FFV1 или ProRes intermediate | Прямой FFV1 — lossless; ProRes — intermediate | bit depth, chroma, timeline frame rate |
| Сделать web/phone-копию | H.264/H.265 в MP4/MOV | Lossy | размер, совместимость, хранение исходного 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.
- Сохраните исходный файл только для чтения и сделайте backup.
- Зафиксируйте ffprobe/MediaInfo.
- Кодируйте один sample в целевую схему.
- Сравните FrameMD5 видео и параметры потоков.
- Проверьте воспроизведение минимум в двух независимых декодерах.
- Только после этого запускайте 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 Converter | Android-конвертация на устройстве | Да | ресурсы и storage телефона |
| KMPlayer | Просмотр на iPhone/iPad | Decode для воспроизведения | не инструмент архивного 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 нужно сохранить и сделать копию для семьи
- Оставьте исходный FFV1 capture неизменным и создайте checksum файла.
- Проверьте field order, 4:2:2 и bit depth через ffprobe/MediaInfo.
- Если архив требует нормализации, сделайте FFV1 v3 copy в Matroska через FFmpeg или Shutter Encoder без deinterlace.
- Сравните FrameMD5 между исходным decoded video и новым FFV1.
- Создайте отдельную H.264/MP4 access-copy. Для неё можно выполнить deinterlace, если просмотр на progressive-экранах этого требует.
- Редактируйте access-copy в ВидеоМАСТЕР: вырежьте пустые участки, добавьте нужные титры, экспортируйте семейную версию.
- Храните master и access-copy в разных каталогах с понятными именами.
Сценарий 2. FFV1/MKV не импортируется в монтажную систему
- Подтвердите, что codec действительно FFV1 и определите pix_fmt.
- Проверьте, принимает ли DaVinci Resolve эту комбинацию напрямую. Если да, избегайте лишнего intermediate.
- Если целевая система FFV1 не принимает, преобразуйте master в подходящий ProRes/DNxHR intermediate с сохранением нужной разрядности/chroma.
- Импортируйте intermediate и смонтируйте проект.
- Не удаляйте FFV1-master: intermediate создан ради совместимости, а не как archival replacement.
Сценарий 3. Нужно только поменять MKV-контейнер
- Выведите список video/audio/subtitle streams.
- Проверьте, допустимы ли все эти codecs в target container.
- Сначала попробуйте stream copy на коротком sample.
- Если muxer отклоняет audio, оставьте video copy и решите вопрос только со звуком либо выберите другой container.
- Сравните codec/pix_fmt до и после; при video copy они должны остаться теми же.
Сценарий 4. Нужно удалить 15 секунд в начале без нового поколения кодирования
- Откройте файл в LosslessCut, Avidemux или Shutter Encoder.
- Если FFV1 не показывается во встроенном preview LosslessCut, включите FFmpeg-assisted playback/proxy, не заменяя original.
- Установите границу cut и экспортируйте без видеоперекодирования.
- Проверьте первый кадр, 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 в свойства файла.