Формат Y4M (YUV4MPEG2): устройство файла, открытие, редактирование и конвертация на компьютере и телефоне

Файл с расширением .y4m обычно появляется не после съёмки на камеру и не после экспорта из обычного видеоредактора. Y4M, или YUV4MPEG2, используют там, где нужно передать последовательность практически необработанных кадров между программами, тестировать кодировщик, сравнивать качество или сохранить параметры видеопотока в простом текстовом заголовке. Поэтому такой файл может занимать гигабайты даже при короткой длительности, не содержит привычной аудиодорожки и поддерживается заметно хуже, чем MP4, MOV или MKV. Ниже разобрано, как определить параметры Y4M, безопасно открыть файл, преобразовать его без лишних потерь, выполнить монтаж, получить raw YUV, создать Y4M обратно и диагностировать типичные ошибки.

Что такое Y4M и зачем нужен YUV4MPEG2

Y4M — это не видеокодек. В технических инструментах формат обычно называется YUV4MPEG2 или yuv4mpegpipe. Он представляет собой поток кадров Y′CbCr/YUV с небольшим ASCII-заголовком перед всем потоком и отдельным заголовком перед каждым кадром. Само изображение записывается как плоские компоненты яркости и цветности. Благодаря этому программе не приходится угадывать ширину, высоту и частоту кадров только по имени файла.

В этом состоит главное отличие от «голого» raw YUV. Файл .yuv часто содержит только байты пикселей: без отдельной информации программа не знает, что перед ней, например, 1920×1080, 25 кадров/с и yuv420p. В Y4M эти параметры находятся в строке, которая начинается с YUV4MPEG2. Поэтому Y4M удобен как промежуточный формат для конвейеров, тестов кодировщиков, передачи кадров через stdin/stdout и лабораторного сравнения изображений.

Стандартный Y4M-поток не рассчитан на хранение аудиодорожки. Это важно при конвертации: команда, которая получает MP4 с видео и звуком и выводит Y4M, сохранит видеокадры, но звук в Y4M не поместится. Если он нужен для дальнейшего монтажа, аудио следует извлечь отдельно или оставить исходный контейнер рядом с Y4M.

Как выглядит заголовок Y4M

Типичная первая строка может выглядеть так:

YUV4MPEG2 W1920 H1080 F30000:1001 Ip A1:1 C420jpeg

После неё идут кадры. Каждый начинается строкой FRAME, после которой расположены бинарные данные изображения. Основные поля читаются так:

  • W1920 — ширина 1920 пикселей;
  • H1080 — высота 1080 пикселей;
  • F30000:1001 — частота кадров в виде отношения; это примерно 29,97 кадра/с;
  • Ip — progressive, то есть прогрессивная развёртка;
  • It — interlaced с верхним полем первым;
  • Ib — interlaced с нижним полем первым;
  • Im — mixed mode, где информация о развёртке уточняется на уровне отдельных кадров;
  • A1:1 — sample aspect ratio, здесь квадратный пиксель;
  • C420jpeg — схема цветовой субдискретизации и размещения chroma samples;
  • X... — расширяемые метаданные, которые некоторые инструменты передают дальше без интерпретации.

В классическом описании YUV4MPEG2 встречаются 420jpeg, 420mpeg2, 420paldv, 411, 422, 444, 444alpha и mono. Современные реализации расширяют этот набор, в том числе для повышенной битности. Именно поэтому неизвестный chroma tag — одна из причин, по которой старый просмотрщик отказывается открывать корректный Y4M.

Y4M и raw YUV: что различается на практике

ПараметрY4M / YUV4MPEG2Raw YUV
ЗаголовокЕсть строка YUV4MPEG2 и заголовки FRAMEОбычно отсутствует
Размер кадраШирина и высота записаны в заголовкеНужно знать заранее
Частота кадровХранится полем FНужно задавать вручную
Chroma/pixel formatОписывается полем CНужно задавать вручную
Граница кадровКаждый кадр предваряется FRAMEВычисляется по размеру кадра
Типичный сценарийPipe, тестирование кодека, обмен необработанными кадрамиДамп кадров, камеры/SDK, лабораторные данные
Риск неверного открытияНиже, если заголовок корректенВысокий: ошибочная геометрия или pixel format дают «мусор»

Почему Y4M такой большой

Главная причина — отсутствие обычного межкадрового сжатия. Для 8-битного YUV 4:2:0 на каждый пиксель приходится в среднем 1,5 байта. Кадр 1920×1080 занимает примерно 3,11 МБ в десятичном исчислении. При 25 кадрах/с получается около 77,8 МБ/с, то есть примерно 260,7 ГиБ на час без учёта нескольких байтов заголовков. Для 4:2:2 поток возрастает примерно до 98,9 МиБ/с, для 4:4:4 — до 148,3 МиБ/с. Поэтому Y4M разумно хранить как рабочий или тестовый материал, а не как формат для долговременного хранения и отправки в мессенджере.

Как проверить Y4M до открытия и конвертации

Не начинайте с переименования .y4m в .mp4 и не меняйте ассоциации Windows наугад. Сначала полезно понять, действительно ли файл является YUV4MPEG2 и какие параметры в нём записаны. Для этого достаточно FFmpeg: его компонент ffprobe читает заголовок без перекодирования.

1. Проверьте сигнатуру

Первая строка корректного Y4M начинается с YUV4MPEG2. В текстовом или hex-просмотрщике начало файла должно содержать эту последовательность ASCII-символов. Если вместо неё виден заголовок другого контейнера, файл мог получить неправильное расширение. Простое переименование контейнер не изменяет.

2. Получите свойства через ffprobe

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,pix_fmt,r_frame_rate,avg_frame_rate -of default=nw=1 input.y4m

Для обычного 8-битного Y4M вывод выглядит примерно так: codec_name=rawvideo, затем ширина, высота, pixel format и частота кадров. Значение rawvideo здесь нормальное: это характеристика кадров, а не признак ошибки.

3. Убедитесь, что файл декодируется дальше первого кадра

ffmpeg -v error -i input.y4m -f null -

Команда последовательно прочитает поток и не создаст новый файл. Отсутствие сообщений об ошибке означает, что структура, по крайней мере на уровне обработки FFmpeg, читается до конца. Если появляется сообщение об unexpected end of file, invalid data или повреждённом frame header, сначала решайте проблему исходника, а уже потом перекодируйте его.

4. Зафиксируйте параметры перед преобразованием

Запишите исходные width, height, frame rate, pixel format и aspect ratio. Если потом результат выглядит растянутым, идёт рывками или потерял цветовую детализацию, эти значения дадут точку сравнения. Особенно важно не менять 30000/1001 на 30 и 24000/1001 на 24 без осознанной причины: это уже другая временная шкала.

ВидеоМАСТЕР : основной способ для Windows после подготовки Y4M

ВидеоМАСТЕР удобен для Windows, когда после подготовки Y4M нужен не только другой контейнер, но и графический монтаж: в программе можно обрезать материал, соединить фрагменты, изменить скорость, наложить музыку или озвучку, добавить текст и изображение, а затем экспортировать ролик. В перечне входных форматов программы Y4M отсутствует. Поэтому .y4m не нужно пытаться открыть сменой расширения — сначала создайте совместимый промежуточный файл через FFmpeg.

Шаг 1. Подготовьте промежуточный MP4

Для максимально совместимого варианта используйте H.264 и yuv420p. Такая подготовка подходит, если задача — обычный монтаж и публикация, а не лабораторное сравнение chroma samples:

ffmpeg -i input.y4m -c:v libx264 -preset slow -crf 12 -pix_fmt yuv420p -an intermediate.mp4

-crf 12 задаёт очень высокое качество, но это всё равно перекодирование. Если исходник имеет 4:2:2, 4:4:4 или повышенную битность, параметр -pix_fmt yuv420p уменьшит цветовую дискретизацию до широко совместимого 8-битного 4:2:0. Для задач, где это недопустимо, не используйте этот маршрут: выполняйте монтаж фильтрами FFmpeg или выбирайте профессиональный редактор, который принимает требуемый pixel format без принудительного перехода в 4:2:0.

Если Y4M получен из исходника со звуком, аудио в нём уже нет. Добавить «пропавший» звук из Y4M невозможно — потребуется исходный MP4/MOV/MKV либо отдельно сохранённая аудиодорожка.

Шаг 2. Добавьте промежуточный файл

Запустите ВидеоМАСТЕР и нажмите кнопку «Добавить». В раскрывающемся меню есть пункт «Добавить видео или аудио»; для нескольких файлов можно использовать добавление папки. После импорта клип появляется в списке задач.

Кнопка Добавить и меню импорта в видеоконвертере

На этом шаге важно выбирать именно intermediate.mp4, созданный на предыдущем этапе. Скриншот показывает интерфейс импорта, а не прямую поддержку .y4m.

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

Для простой подготовки ролика используйте инструменты программы до финальной конвертации. В ВидеоМАСТЕРе доступны нарезка на фрагменты, соединение роликов, поворот и отражение, кадрирование, изменение скорости, фильтры, извлечение звука, наложение музыки или озвучки, добавление текста и изображения, создание GIF и стоп-кадра. Не обязательно применять всё сразу: каждое дополнительное преобразование должно отвечать конкретной задаче.

  • Если нужно убрать начало и конец, сначала задайте границы клипа, чтобы не кодировать лишние кадры.
  • Если несколько Y4M были подготовлены одинаково, добавьте их в очередь и объединяйте уже после проверки разрешения и FPS.
  • Если исходники имеют разную частоту кадров, не включайте единое значение «для всех» автоматически: сначала определите, какой темп нужен итоговому проекту.
  • Если важна геометрия кадра, не включайте растяжение до другого соотношения сторон; используйте кадрирование или сохранение исходного aspect ratio.

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

Шаг 4. Выберите формат экспорта

В нижней части окна откройте список форматов. Для обычного просмотра и публикации чаще всего нужен MP4 с H.264; при другой задаче можно выбрать AVI, MOV, MKV, WMV и доступные профили устройств. Если конвертируется несколько роликов в один формат, используйте «Применить для всех» только после того, как убедились, что одинаковые параметры подходят каждому файлу.

Выбор формата вывода в видеоконвертере

Шаг 5. Проверьте параметры конвертации

Откройте «Параметры». В окне можно задать видеокодек, размер кадра, частоту кадров и битрейт. Для Y4M-проекта особенно важны три правила:

  1. Не увеличивайте разрешение без необходимости: апскейл не возвращает деталей, которых не было в исходных кадрах.
  2. Сохраняйте исходную частоту кадров, если не выполняете осознанное преобразование частоты.
  3. Не занижайте битрейт только ради минимального файла, если материал затем будет ещё раз редактироваться.

Окно параметров конвертации с кодеком разрешением частотой кадров и битрейтом

Шаг 6. Запустите экспорт и проверьте результат

Укажите папку сохранения и нажмите «Конвертировать». После завершения не ограничивайтесь тем, что файл открывается. Сравните длительность, размер кадра и FPS с исходным Y4M; просмотрите начало, середину и конец ролика; проверьте движение, тон кожи, тёмные области и насыщенные цвета. Если картинка стала заметно бледнее или темнее, проблема может быть не в ВидеоМАСТЕРе, а в цветовых параметрах, которые уже изменились при предварительном преобразовании Y4M.

Плюсы основного сценария с ВидеоМАСТЕРом

  • подходит для пользователя Windows, которому после подготовки Y4M нужен графический интерфейс, а не серия команд;
  • объединяет конвертацию и базовый монтаж в одном проекте;
  • позволяет вручную контролировать разрешение, FPS и битрейт вывода;
  • есть пакетная обработка и профили популярных форматов.

Ограничения сценария с ВидеоМАСТЕРом

  • Y4M отсутствует в перечне входных форматов программы, поэтому нужен промежуточный файл;
  • совместимый MP4 с yuv420p может уменьшить цветовую дискретизацию исходника 4:2:2/4:4:4;
  • при маршруте Y4M → MP4 → монтаж → MP4 появляется как минимум одно дополнительное перекодирование до финального экспорта;
  • для научного сравнения кадров и точного сохранения raw-параметров лучше использовать FFmpeg или специализированные Y4M-инструменты.

WonderFox HD Video Converter Factory Pro : прямой Y4M → MP4 в Windows

Если монтаж до конвертации не нужен, WonderFox HD Video Converter Factory Pro принимает .y4m напрямую: файл появляется в очереди как Y4M, после чего для него можно выбрать MP4. Поэтому отдельный подготовительный контейнер перед графической конвертацией не требуется.

Шаг 1. Откройте модуль Converter и добавьте Y4M

В стартовом окне выберите «Converter». Затем нажмите «Add Files» и укажите один или несколько .y4m. Допускается drag-and-drop. После добавления в очереди отображается тип Y4M, длительность, разрешение и размер исходника.

Очередь с несколькими файлами Y4M в графическом видеоконвертере

Шаг 2. Выберите MP4

Нажмите область «Output Format» справа. В категории «Video» выберите «MP4». Не выбирайте профиль конкретного телефона только потому, что он находится рядом: такой профиль может одновременно изменить разрешение, FPS и другие параметры. Для контролируемой конвертации проще начать с формата MP4 и отдельно проверить настройки.

Выбор MP4 в категории Video программы WonderFox

Шаг 3. При необходимости откройте Parameter settings

Кнопка «Parameter settings» открывает видео- и аудионастройки. Для Y4M раздел аудио не должен вводить в заблуждение: исходный YUV4MPEG2-поток не несёт обычной аудиодорожки. В видеочасти проверьте Encoder, Resolution, Bit rate, Frame rate, Aspect ratio и Deinterlace. Значение Deinterlace не следует включать автоматически: если в заголовке Y4M стоит progressive, деинтерлейсинг не нужен.

Parameter Settings WonderFox для разрешения битрейта FPS aspect ratio и deinterlace

Шаг 4. Укажите папку и нажмите Run

В поле «Output folder» задайте папку назначения и нажмите «Run». При пакетной обработке проверьте настройки до запуска всей очереди. Один неправильный пресет, применённый к нескольким гигабайтным Y4M, означает лишние часы повторного кодирования.

Кнопка Run и папка вывода при пакетной конвертации Y4M в WonderFox

Плюсы WonderFox HD Video Converter Factory Pro

  • программа принимает .y4m непосредственно на вход;
  • не нужен промежуточный контейнер перед MP4;
  • можно обрабатывать несколько Y4M в одной очереди;
  • доступны ручные настройки разрешения, bitrate, FPS, aspect ratio и deinterlace.

Ограничения WonderFox HD Video Converter Factory Pro

  • Windows-ориентированный GUI, поэтому для macOS/Linux этот путь не универсален;
  • при выборе обычного MP4 выполняется сжатие и итог уже не является raw-потоком;
  • нужно вручную контролировать, чтобы preset не изменил разрешение или частоту кадров без необходимости.

ACDSee Video Converter 5: прямой импорт Y4M на совместимых версиях Windows

ACDSee Video Converter 5 принимает Y4M на вход и сохраняет видео, в частности, в MP4, MOV, MKV, AVI и MPEG1. Системные требования ограничены Windows 7 SP1, Windows 8/8.1 и Windows 10; Windows 11 в списке поддерживаемых систем отсутствует. Поэтому этот способ имеет смысл прежде всего на уже работающем совместимом ПК, а не как основной вариант для новой системы.

Как выполнить преобразование

  1. В главном окне нажмите «Add Video Files...»; для папки используется «Add Folder...».
  2. Выберите .y4m в диалоге и нажмите «Open».
  3. В настройке выходного формата выберите MP4 или другой нужный контейнер.
  4. Если требуется, откройте Detailed Settings и задайте frame size, video bitrate и другие параметры.
  5. Укажите Output Directory.
  6. Нажмите Convert. После завершения файл можно найти через команду Locate Output Video.

Интерфейс ACDSee Video Converter 5 и окно выбора MP4

Сильная сторона этого способа — прямой Y4M-вход без промежуточного файла. Ограничение — узкий набор поддерживаемых версий Windows. Поддержку Y4M не следует автоматически переносить на другие приложения ACDSee: здесь речь именно о Video Converter 5.

FFmpeg : самый контролируемый способ для Windows, macOS и Linux

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

Для Y4M командная строка особенно уместна: формат изначально создавался для потоковых конвейеров, а FFmpeg умеет определить сигнатуру YUV4MPEG2, прочитать заголовок и работать с .y4m как с yuv4mpegpipe. Этот метод не зависит от графического интерфейса и позволяет точно видеть, где меняется pixel format, разрешение или FPS.

Просмотреть свойства

ffprobe -hide_banner input.y4m

Для структурированного вывода:

ffprobe -v error -select_streams v:0 -show_entries stream=width,height,pix_fmt,r_frame_rate,sample_aspect_ratio -of default=nw=1 input.y4m

Открыть без создания нового файла

ffplay input.y4m

Если ffplay входит в установленную сборку, этого достаточно для проверки изображения и движения. Для точной оценки цвета полезно дополнительно сравнивать кадры с эталонным просмотрщиком: разные цепочки вывода на экран могут использовать разные преобразования YUV→RGB.

Y4M → MP4 с H.264

ffmpeg -i input.y4m -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -an output.mp4

Команда создаёт обычный совместимый MP4. Параметр -crf 18 даёт высокое качество, -preset medium управляет компромиссом скорость/эффективность кодирования, а -pix_fmt yuv420p повышает совместимость плееров. Последний параметр нельзя считать «без потерь»: 4:2:2 и 4:4:4 исходник будет переведён в 4:2:0.

Y4M → MP4 без принудительного 4:2:0

Если конечный декодер принимает исходную цветовую субдискретизацию, сначала узнайте pix_fmt через ffprobe, затем не задавайте yuv420p автоматически. Например:

ffmpeg -i input.y4m -c:v libx264 -crf 18 -preset slow output.mp4

Совместимость такого файла зависит от того, какой профиль H.264 понадобится для исходного pixel format. Поэтому этот вариант лучше для контролируемого рабочего контура, чем для случайного телевизора или старого мобильного плеера.

Y4M → Matroska с FFV1 для промежуточного хранения

ffmpeg -i input.y4m -c:v ffv1 -level 3 -an intermediate.mkv

FFV1 — lossless-кодек: он уменьшает объём относительно необжатого Y4M без квантования изображения. Такой MKV удобнее хранить, чем огромный Y4M, но его следует выбирать только если следующая программа действительно поддерживает FFV1. Для ВидеоМАСТЕРа в основном сценарии используется совместимый MP4, а FFV1/MKV оставлен для цепочек, где следующий редактор принимает этот lossless-кодек.

MP4 → Y4M

ffmpeg -i input.mp4 -map 0:v:0 -an -pix_fmt yuv420p -f yuv4mpegpipe output.y4m

Эта команда декодирует сжатое видео в последовательность кадров. Y4M станет намного больше исходного MP4, но качество не «улучшится»: декодирование не восстанавливает информацию, потерянную при прежнем сжатии. -an подчёркивает, что звук в Y4M не записывается.

Y4M → raw YUV

ffmpeg -i input.y4m -f rawvideo -pix_fmt yuv420p output.yuv

Если исходный pixel format не yuv420p, не копируйте параметр механически. Сначала получите его через ffprobe и укажите тот же формат, если raw-файл предназначен для точного анализа. После удаления Y4M-заголовков рядом с .yuv сохраните текстовый файл с width, height, FPS и pixel format — иначе через месяц восстановить правильную интерпретацию будет сложнее.

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

ffmpeg -ss 00:00:05 -i input.y4m -t 00:00:10 -c:v rawvideo -f yuv4mpegpipe clipped.y4m

Y4M состоит из кадров, поэтому нет преимущества «stream copy», как у сжатого контейнера с кодеком. Команда декодирует/передаёт кадры и создаёт новый Y4M-поток с нужным диапазоном.

Кадрировать

ffmpeg -i input.y4m -vf "crop=1280:720:320:180" -f yuv4mpegpipe cropped.y4m

После crop обязательно проверьте чётность размеров при 4:2:0 и других субдискретизированных форматах: цветовые плоскости имеют меньшую геометрию, поэтому произвольная нечётная ширина или координата может быть несовместима с выбранным pixel format.

Изменить размер

ffmpeg -i input.y4m -vf "scale=1280:720" -f yuv4mpegpipe resized.y4m

Масштабирование меняет сами пиксели. Если цель — только исправить отображаемое соотношение сторон, сначала проверьте sample aspect ratio: иногда нужно изменить метаданные или SAR, а не растягивать изображение.

Извлечь контрольные PNG-кадры

ffmpeg -i input.y4m -vf "select='eq(n,0)+eq(n,100)+eq(n,250)'" -vsync 0 frame-%03d.png

Контрольные кадры удобно использовать до и после перекодирования. Сравнивайте один и тот же номер кадра при одинаковом цветовом преобразовании. PNG полезен для визуального контроля, но сам переход YUV→RGB при создании PNG уже является преобразованием цветового представления.

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

ffprobe -v error -show_entries format=duration,size -show_entries stream=width,height,pix_fmt,r_frame_rate -of default=nw=1 output.mp4

Сверьте длительность, width, height, FPS и ожидаемый pixel format. Затем просмотрите файл. Такая двухступенчатая проверка лучше, чем ориентироваться только на размер: маленький файл может быть нормальным результатом эффективного кодирования или следствием слишком низкого bitrate.

VLC Media Player : быстрый просмотр Y4M без конвертации

Когда нужно только убедиться, что кадры выглядят правильно, перекодирование не обязательно. VLC Media Player распознаёт сигнатуру YUV4MPEG2 и обрабатывает такой поток через raw-video demuxer, поэтому корректный Y4M можно открыть непосредственно в плеере.

Откройте «Media» → «Open File» и выберите .y4m либо перетащите файл в окно. Если конкретная chroma-схема неизвестна этой сборке, плеер может выдать ошибку даже при корректной сигнатуре. В таком случае сначала проверьте файл через ffprobe и попробуйте преобразовать нестандартный pixel format в более распространённый.

Окно настольного медиаплеера с воспроизводимым видео

На скриншоте показано рабочее окно плеера. При открытии .y4m критично, чтобы файл имел корректную сигнатуру YUV4MPEG2 и поддерживаемый chroma tag.

Плюсы просмотра через VLC Media Player

  • не требуется сначала создавать MP4;
  • удобен для быстрой визуальной проверки;
  • есть внутренний обработчик YUV4MPEG2.

Ограничения просмотра через VLC Media Player

  • это просмотрщик, а не основной инструмент точного редактирования raw-кадров;
  • поддержка конкретных расширенных chroma tags может отличаться;
  • для iPhone и Android лучше не строить основной workflow вокруг прямого Y4M-воспроизведения: при проблеме с файлом практичнее браузерная конвертация либо перенос на компьютер.

MJPEGTools: нативные утилиты для YUV4MPEG2

MJPEGTools важен потому, что YUV4MPEG2 исторически используется именно между pipe-based инструментами этого набора. Здесь Y4M не редкий импортный формат, а рабочий язык передачи кадров. Такой способ полезен на Linux и в Unix-подобной среде, когда нужно отделить контейнерные заголовки, посмотреть поток или превратить кадры в PNM.

Просмотр через yuvplay

yuvplay 

Команда получает Y4M через stdin. Это хорошо показывает идею формата: файл можно не только читать с диска, но и подавать по pipe из другой программы.

Y4M → raw YUV через y4mtoyuv

y4mtoyuv  output.yuv

В отличие от перекодирования в H.264, здесь задача — удалить служебные заголовки и оставить последовательность YUV-данных. После операции обязательно сохраните параметры, которые раньше находились в Y4M header.

Raw YUV → Y4M через yuv4mpeg

Для raw-файла геометрию и формат нужно указать явно. Пример из типичного 4:2:0 рабочего процесса:

cat input.yuv | yuv4mpeg -w 832 -h 480 -x 420mpeg2 -a 40:39 -i p -r 50:1 > output.y4m

Здесь width, height, chroma mode, pixel aspect ratio, progressive mode и frame rate задаются вручную. Ошибка в любом из них создаст формально читаемый Y4M с неверной интерпретацией данных. Поэтому параметры raw YUV нельзя угадывать по размеру файла, если неизвестно точное количество кадров.

Y4M → PNM через y4mtopnm

y4mtopnm подходит для 4:4:4 и монохромных Y4M-потоков. Опция -P включает PAM-вывод:

y4mtopnm -P  frames.pam

Обычный субдискретизированный 4:2:0 или 4:2:2 поток утилита напрямую в RGB-PNM не преобразует: перед таким экспортом его приводят к 4:4:4 с помощью y4mscaler либо используют диагностический flattened-режим -f. Если кадров несколько, PNM/PAM-изображения записываются последовательно в один поток; для отдельных файлов результат разделяют утилитой pnmsplit. При переходе к отдельным изображениям перестают быть частью результата видеотайминг, interlace и aspect metadata, поэтому этот маршрут предназначен для покадрового анализа, а не для обычного просмотра.

GStreamer: Y4M как элемент мультимедийного pipeline

GStreamer содержит элементы y4mdec и y4menc: декодер разбирает YUV4MPEG stream, а энкодер упаковывает raw YUV frames в Y4M. Такой путь полезен, когда Y4M является одним звеном более длинной мультимедийной цепочки.

Простой просмотр файла

gst-launch-1.0 filesrc location=input.y4m ! y4mdec ! videoconvert ! autovideosink

filesrc читает файл, y4mdec снимает структуру YUV4MPEG2, videoconvert приводит кадры к формату, который принимает видеовывод, а autovideosink выбирает доступный sink. Если система сообщает «no element y4mdec», проблема не в файле: в установленном наборе плагинов отсутствует нужный элемент.

Создать Y4M из raw video внутри pipeline

gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw,format=I420,width=1280,height=720,framerate=25/1 ! y4menc ! filesink location=test.y4m

Такой пример полезен для тестирования: поток генерируется, получает точно заданные caps, упаковывается в Y4M и сохраняется. Для реального raw-файла вместо videotestsrc нужен вход, для которого заранее заданы геометрия и pixel format.

Converter.app: Y4M → MP4 и обратное преобразование в браузере

Converter.app принимает Y4M и преобразует его в MP4 без установки программы. Файл временно передаётся на удалённый сервер и автоматически удаляется после обработки; поэтому конфиденциальный тестовый материал разумнее обрабатывать локально.

Как получить MP4

  1. Откройте страницу преобразования Y4M→MP4.
  2. Нажмите «Click to choose a file» или перетащите .y4m в область загрузки.
  3. После загрузки преобразование запускается автоматически.
  4. Когда обработка завершится, нажмите «Download».

Область Click to choose a file сервиса Converter App для Y4M в MP4
Кнопка Download после конвертации в Converter App

Доступно и обратное направление MP4→Y4M. При этом онлайн-конвертер не подходит для точного контроля pixel format: интерфейс не раскрывает chroma mode, bit depth и color range так подробно, как командная строка, поэтому часть параметров выбирается автоматически.

Плюсы Converter.app

  • нет установки;
  • принимает Y4M непосредственно на вход;
  • есть прямое Y4M→MP4 и обратное MP4→Y4M.

Ограничения Converter.app

  • файл загружается на удалённый сервер;
  • для многогигабайтного Y4M время загрузки может быть больше самого времени кодирования;
  • меньше контроля над pixel format, color metadata и кодировочными параметрами, чем в FFmpeg.

ezyZip: Y4M → MPEG локально в браузере

ezyZip выполняет Y4M→MPEG локально через WebAssembly в браузере: данные файла остаются на устройстве и не отправляются на сервер для преобразования. Такой маршрут удобен, когда устанавливать программу нельзя, а передавать большой Y4M во внешнее хранилище нежелательно.

Шаг 1. Выберите Y4M

Нажмите «Выбрать файл Y4M для конвертации» либо перетащите файл в область страницы.

Кнопка выбора файла Y4M в ezyZip

Шаг 2. Подтвердите преобразование

После выбора нажмите «Конвертировать в MPEG». Страница выполняет обработку локально; скорость зависит прежде всего от процессора, объёма Y4M и ресурсов браузера.

Кнопка Конвертировать в MPEG в ezyZip

Шаг 3. Сохраните MPEG

После сообщения «Конвертация файлов окончена» нажмите «Сохранить файл MPEG». Перед удалением исходного Y4M откройте результат и убедитесь, что длительность, геометрия и движение совпадают.

Сохранение MPEG после конвертации Y4M в ezyZip

Когда ezyZip удобнее серверного конвертера

  • исходник содержит непубличные тестовые кадры и нежелательна отправка на сторонний сервер;
  • интернет медленный, но страница уже загрузилась;
  • нужен разовый MPEG и нет возможности устанавливать ПО;
  • работа выполняется на Chromebook, iPhone, iPad или Android-устройстве с современным браузером.

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

Как работать с Y4M на iPhone, iPad и Android

На телефоне с Y4M лучше сначала решить задачу совместимости, а не искать любой «video converter» по названию. Формат создаёт очень большой поток данных, и многие мобильные редакторы рассчитаны на MP4/MOV, а не на YUV4MPEG2. Для iPhone, iPad и Android практичен браузерный ezyZip: он работает в современном мобильном браузере и выполняет Y4M→MPEG локально.

У VLC Media Player есть мобильные версии, но основной мобильный маршрут лучше не связывать с прямым импортом Y4M. Если локальный .y4m не распознаётся, не меняйте расширение: преобразуйте копию через ezyZip либо перенесите исходник на компьютер и используйте FFmpeg.

Полноценный мобильный монтаж Y4M непрактичен из-за объёма raw-потока и ограниченного контроля над chroma/color metadata в типичных мобильных редакторах. Практичнее сначала получить MP4 или MOV с контролируемыми параметрами, проверить результат, а затем редактировать совместимый файл на телефоне.

Как редактировать Y4M без лишней потери качества

Фраза «сначала конвертируйте Y4M в MP4, затем редактируйте и снова сохраните MP4» скрывает важный компромисс: два последовательных lossy-кодирования могут дать больше артефактов, чем один финальный экспорт. Для Y4M имеет смысл выбрать рабочую схему ещё до первого преобразования.

Сценарий 1. Нужна только обрезка, crop или resize

Выполните фильтр сразу в FFmpeg и выведите результат либо обратно в Y4M, либо сразу в конечный формат. Тогда нет промежуточного H.264-файла.

ffmpeg -i input.y4m -vf "crop=1280:720:0:0,scale=1920:1080" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p final.mp4

Сценарий 2. Нужен GUI-монтаж в ВидеоМАСТЕРе

Преобразуйте Y4M один раз в очень качественный совместимый MP4, выполните весь монтаж, а затем сделайте финальный экспорт. Не создавайте цепочку MP4 → AVI → MP4 только из-за того, что разные программы предлагают разные форматы по умолчанию.

Сценарий 3. Нужна максимальная сохранность кадров

Оставьте Y4M как мастер или преобразуйте его в lossless FFV1/MKV для хранения, если следующий инструмент принимает FFV1. Финальный H.264/H.265/AV1 создавайте один раз в конце. Для научных тестов сохраняйте исходный Y4M независимо от наличия сжатой копии.

Сценарий 4. Нужно сравнить кодировщики

Не делайте промежуточный lossy MP4 вообще. Один и тот же Y4M подавайте в разные кодировщики. Это исключает ситуацию, когда один энкодер тестируется на уже испорченном результатом другого.

Цвет, chroma subsampling и типичные изменения после конвертации

Пользователь часто замечает проблему только после MP4: изображение стало бледнее, тени провалились, красный выглядит иначе, тонкие цветные линии потеряли резкость. Причина не всегда в «плохом конвертере». В YUV-процессе есть несколько независимых параметров, и каждый способен изменить результат.

4:2:0, 4:2:2 и 4:4:4

В 4:4:4 цветовые компоненты имеют полное пространственное разрешение относительно яркости. В 4:2:2 цветность уменьшается по горизонтали, в 4:2:0 — и по горизонтали, и по вертикали. Для обычного пользовательского видео 4:2:0 очень распространён, но исходный Y4M может быть 4:2:2 или 4:4:4. Принудительное -pix_fmt yuv420p в таком случае необратимо уменьшает цветовую детализацию.

420jpeg, 420mpeg2 и 420paldv — не просто три названия 4:2:0

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

Full range и limited range

При неправильной интерпретации диапазона чёрный и белый уровни смещаются. Если limited-range данные трактуются как full-range или наоборот, картинка может выглядеть выцветшей либо излишне контрастной. Не исправляйте это случайным повышением контраста: сначала сравните color range в метаданных и реальный диапазон исходных значений.

Color matrix

Преобразование Y′CbCr в RGB зависит от матрицы. Ошибка BT.601/BT.709/BT.2020 заметнее на насыщенных цветах. Сам старый Y4M-формат исторически гораздо беднее современного контейнера по цветовым метаданным, а расширения поддерживаются инструментами неодинаково. Поэтому при критичной цветопередаче сохраняйте сведения о происхождении потока отдельно и явно задавайте матрицу в профессиональном процессе.

Interlace

Если заголовок содержит It или Ib, это не повод автоматически включать любой deinterlace. Сначала определите, действительно ли конечный формат и устройство требуют progressive. Деинтерлейсинг меняет кадры, а неправильный порядок полей создаёт характерное дрожание движения. Для Ip фильтр деинтерлейса вообще не нужен.

Y4M → raw YUV и обратно: когда это действительно требуется

Переход между Y4M и .yuv — один из основных технических сценариев работы с форматом. Он нужен для кодировщиков и SDK, которые принимают только rawvideo, а также для тестовых наборов, где параметры изображения хранятся отдельно.

Из Y4M в raw YUV без изменения геометрии

ffmpeg -i input.y4m -map 0:v:0 -f rawvideo output.yuv

Чтобы избежать неявного изменения pixel format, сначала проверьте исходник. Затем при необходимости укажите его явно:

ffmpeg -i input.y4m -map 0:v:0 -pix_fmt yuv422p -f rawvideo output.yuv

Для MJPEGTools:

y4mtoyuv  output.yuv

Что теряется при удалении Y4M-заголовков

  • width и height перестают находиться внутри raw-файла;
  • frame rate нужно хранить отдельно;
  • sample aspect ratio больше не извлекается из контейнерной строки;
  • chroma mode приходится знать заранее;
  • границы кадров вычисляются по размеру плоскостей, а не по строкам FRAME.

Именно поэтому конвертация Y4M→YUV не делает файл «проще для обычного пользователя». Наоборот, она убирает полезные подсказки и предназначена для программ, которым raw layout известен заранее.

Raw YUV → Y4M через FFmpeg

Для rawvideo входные параметры обязательны. Например, если точно известно, что файл 1920×1080, 25 fps, yuv420p:

ffmpeg -f rawvideo -pixel_format yuv420p -video_size 1920x1080 -framerate 25 -i input.yuv -f yuv4mpegpipe output.y4m

Если указать неверную геометрию, программа разделит байты на кадры не там, где нужно. На экране появятся сдвиги, диагональные полосы или «рваная» картинка. Неверный pixel format часто даёт неправильные цвета.

Y4M в профессиональных пайплайнах и x265

Y4M особенно полезен, когда промежуточный файл вообще не нужен. Программа A выводит кадры в stdout, программа B читает их из stdin. В таком pipeline Y4M сохраняет геометрию и FPS между этапами, но остаётся достаточно простым для потоковой передачи.

FFmpeg → x265

x265 CLI принимает raw YUV и Y4M. Для stdin предусмотрен ключ --y4m; при имени файла с расширением .y4m распознавание включается автоматически. Пример pipe:

ffmpeg -i input.mp4 -an -pix_fmt yuv420p -f yuv4mpegpipe - | x265 --y4m --input - --crf 20 -o output.hevc

Преимущество такого маршрута — отсутствие огромного промежуточного .y4m на диске. Недостаток — если второй процесс завершится с ошибкой, весь pipeline придётся повторить. Для длительных экспериментов иногда выгоднее один раз сохранить эталонный Y4M и затем многократно подавать его в разные энкодеры.

VapourSynth → x265

В кодировочных workflow встречается схема:

vspipe -c y4m script.vpy - | x265 --y4m --input - --crf 18 -o output.hevc

Здесь VapourSynth выполняет фильтрацию кадров, Y4M служит транспортным форматом, а x265 кодирует HEVC. Такой пример показывает, зачем формат существует даже при наличии MP4: контейнер для распространения видео и pipe-format решают разные задачи.

Отдельный сценарий: Y4M как тестовая камера для Google Chrome

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

В автоматизированном тестировании WebRTC и камерных сценариев Google Chrome может получать заранее подготовленный Y4M вместо физической веб-камеры. Это специальная задача для desktop-тестов, а не способ обычного просмотра.

Сначала создайте тестовый Y4M через FFmpeg, задав нужные размер, FPS и pixel format. Затем запустите браузер с двумя флагами и укажите путь к файлу:

google-chrome --use-fake-device-for-media-stream --use-file-for-fake-video-capture=/path/to/test.y4m

Первый флаг включает виртуальное media-устройство, второй подменяет видеовход содержимым .y4m. Если тест не стартует, проверьте сам Y4M через ffprobe, затем его геометрию, FPS и pixel format; переименование другого видео в .y4m не создаёт корректный fake-camera input.

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

Почему Y4M не открывается: диагностическое дерево

Файл не начинается с YUV4MPEG2

Вероятнее всего, это другой формат с ошибочным расширением или повреждённое начало файла. Проверьте сигнатуру и определение через ffprobe. Переименование в .mp4 не исправит структуру.

ffprobe видит Y4M, но GUI-программа отказывается его импортировать

У программы нет Y4M-demuxer либо она поддерживает не тот chroma tag. Используйте FFmpeg или программу с прямым Y4M-входом, например WonderFox HD Video Converter Factory Pro или ACDSee Video Converter 5.

Изображение открывается, но выглядит «полосами»

Так чаще ведёт себя raw YUV при неверных width/height/pixel format. Если файл действительно Y4M, проверьте, не был ли заголовок удалён или изменён. Для .yuv задайте параметры вручную.

Картинка нормальная, но скорость воспроизведения неправильная

Сравните поле F в Y4M и r_frame_rate в ffprobe. Частоты 24000:1001 и 30000:1001 нельзя бездумно округлять. Если raw YUV был упакован в Y4M вручную, возможно, при создании указали неверный -framerate или -r.

После конвертации пропал звук

Это не поломка Y4M: стандартный поток не содержит обычной аудиодорожки. Если звук существовал в исходном MP4 до создания Y4M, храните исходник или экспортируйте аудио отдельно.

После конвертации цвет стал хуже

Сначала сравните pixel format. Если было yuv444p/yuv422p, а стало yuv420p, часть цветовой детализации потеряна. Затем проверьте range и color matrix. Не пытайтесь компенсировать структурную ошибку случайным фильтром насыщенности.

Получился огромный файл

Для Y4M это ожидаемо. Сравните расчётный размер: width × height × bytes-per-pixel × frame count плюс небольшие заголовки. Если нужно хранение, создайте сжатую копию MP4 либо lossless FFV1/MKV, а Y4M оставьте только при необходимости точного тестового исходника.

Онлайн-сервис зависает или браузер закрывает вкладку

Большой Y4M нагружает память и диск сильнее, чем небольшой MP4. Перенесите операцию на настольный FFmpeg. Разбиение Y4M на части только ради обхода браузерного лимита редко оправдано, поскольку каждый фрагмент всё равно приходится обрабатывать.

Старый плеер пишет Unknown YUV4MPEG2 chroma type

Файл использует chroma tag или bit depth, которые этот плеер не понимает. Современный FFmpeg поддерживает больше вариантов, включая ряд 9/10/12/14/16-битных planar formats при разрешении нестандартного Y4M-вывода. Для совместимости можно создать отдельную копию в yuv420p, но оригинал лучше сохранить.

Как выбрать способ под конкретную задачу

СценарийРекомендуемый путьПочемуГлавное ограничение
Windows, нужен монтаж и понятный GUIСначала FFmpeg, затем ВидеоМАСТЕРМожно подготовить совместимый файл, обрезать, соединить и оформить видеоY4M отсутствует в перечне входных форматов ВидеоМАСТЕРа
Windows, нужен прямой Y4M→MP4WonderFox HD Video Converter Factory ProПринимает .y4m напрямую и выводит MP4Нужно контролировать preset и параметры
Windows со старой совместимой системойACDSee Video Converter 5Принимает Y4M непосредственно на входПоддерживаемые ОС заканчиваются Windows 10
Windows/macOS/Linux, нужен полный контрольFFmpegПроверка, фильтры, raw YUV, Y4M, MP4, lossless intermediateКомандная строка
Только посмотретьVLC Media Player или ffplayНет обязательного перекодированияРедкие chroma tags могут не поддерживаться конкретным плеером
Linux/Unix raw pipelineMJPEGTools или GStreamerY4M является естественным pipe-formatНужны терминал и понимание pixel format
Разовая операция без установкиConverter.appПрямой Y4M→MP4Файл загружается на сервер
Без установки и без серверной отправкиezyZipY4M→MPEG обрабатывается локально в браузереБольшие Y4M тяжёлы для браузера/телефона
Y4M↔raw YUVFFmpeg или MJPEGToolsМожно сохранить точную структуру кадровПосле Y4M→YUV метаданные нужно хранить отдельно
Тестирование HEVC encoderY4M pipe → x265x265 принимает Y4M напрямую и через stdinЭто инженерный, а не бытовой workflow

Практические рецепты конвертации Y4M для разных целей

Одной универсальной команды для Y4M нет: оптимальные параметры зависят от того, нужен ли маленький файл для отправки, промежуточный материал для монтажа, точная проверка кадров или новый Y4M для кодировщика. Ниже собраны сценарии, в которых параметры выбраны осознанно, а не оставлены на автоматический подбор.

Небольшой MP4 для просмотра и передачи

ffmpeg -i input.y4m -c:v libx264 -crf 20 -preset medium -pix_fmt yuv420p -movflags +faststart -an output.mp4

-movflags +faststart переносит служебную структуру MP4 ближе к началу файла, что удобно для начала воспроизведения при загрузке по сети. -pix_fmt yuv420p выбран ради совместимости, поэтому этот рецепт не подходит, когда нужно сохранить исходные 4:2:2 или 4:4:4 без изменения. Частота кадров и размер не задаются вручную: при корректном Y4M FFmpeg читает их из заголовка.

HEVC для меньшего delivery-файла

ffmpeg -i input.y4m -c:v libx265 -crf 22 -preset medium -pix_fmt yuv420p -tag:v hvc1 -an output.mp4

HEVC обычно сжимает эффективнее H.264, но декодирование тяжелее, а совместимость старых устройств ниже. -tag:v hvc1 часто полезен для экосистем, где HEVC в MP4 ожидается с соответствующим sample entry. Этот вариант стоит выбирать не «потому что H.265 новее», а когда устройство назначения точно его воспроизводит.

Lossless-копия для хранения рабочего материала

ffmpeg -i input.y4m -map 0:v:0 -c:v ffv1 -level 3 -g 1 -an archive.mkv

Такой Matroska-файл остаётся lossless на уровне декодированных кадров и обычно занимает меньше исходного Y4M. Параметр -g 1 создаёт intra-only структуру FFV1, удобную для произвольного доступа к кадрам ценой размера. Перед тем как удалить исходный Y4M, проверьте round-trip через frame hashes.

Проверка lossless round-trip через framemd5

Сначала вычислите хеш каждого декодированного кадра исходного Y4M:

ffmpeg -v error -i input.y4m -map 0:v:0 -f framemd5 original.framemd5

Затем то же самое для lossless-копии:

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

Если файлы framemd5 совпадают построчно при одинаковом декодированном pixel format, последовательности кадров идентичны. Это значительно надёжнее визуальной оценки «на глаз» и особенно полезно перед очисткой большого рабочего диска. Для lossy H.264/HEVC совпадения хешей ожидать нельзя.

Создать 10-битный Y4M для инструмента, который понимает расширение формата

ffmpeg -i input.y4m -pix_fmt yuv420p10le -strict -1 -f yuv4mpegpipe output-10bit.y4m

Современный FFmpeg умеет выводить ряд расширенных 9/10/12/14/16-битных Y4M pixel formats при разрешении нестандартных расширений. Заголовок такого файла может содержать, например, C420p10. Старые MJPEGTools или старые плееры могут такой тег не принять. Поэтому повышенную битность используют только в контролируемом pipeline, где следующий инструмент точно понимает расширение.

Получить последовательность PNG для покадровой ретуши

ffmpeg -i input.y4m frames/frame-%06d.png

Команда создаёт отдельный PNG на каждый кадр. Это резко увеличивает количество файлов и не сохраняет видеотайминг внутри изображений, поэтому заранее создайте отдельную папку и запишите исходный FPS. Обратная сборка при 25 кадрах/с:

ffmpeg -framerate 25 -i frames/frame-%06d.png -pix_fmt yuv420p -f yuv4mpegpipe rebuilt.y4m

Здесь число 25 должно соответствовать исходному FPS. Если исходник был 30000:1001, задайте -framerate 30000/1001, а не округляйте до 30.

Сохранить первый кадр для быстрой диагностики

ffmpeg -i input.y4m -frames:v 1 first-frame.png

Если первый кадр корректный, но воспроизведение ломается позже, проблема может находиться в одном из последующих FRAME headers или в усечённом конце файла. Если уже первый кадр искажён, проверяйте chroma/pixel format, width/height и сам заголовок.

Контрольный чек-лист перед удалением исходного Y4M

Большой Y4M часто хочется удалить сразу после получения MP4, но именно исходник содержит наиболее прямое представление кадров и может понадобиться для повторного кодирования. Перед удалением пройдите короткую проверку.

  1. Сравните длительность. Итог не должен быть короче из-за оборванной обработки.
  2. Сверьте разрешение и FPS. Значения должны меняться только если это было частью задачи.
  3. Проверьте pixel format. Переход 4:4:4/4:2:2 → 4:2:0 должен быть осознанным.
  4. Просмотрите несколько точек. Минимум начало, середину, конец и участок с быстрым движением.
  5. Проверьте цвет. Сравните тени, белые области, насыщенные красные/синие объекты и кожу.
  6. Проверьте геометрию. Круги не должны превращаться в овалы из-за ошибочного sample aspect ratio.
  7. Убедитесь в судьбе аудио. Если звук нужен, он должен существовать в отдельном исходнике или итоговом контейнере.
  8. Для lossless-копии сравните framemd5. Визуальной проверки недостаточно, если требуется точная побитовая проверка декодированных кадров.
  9. Храните команду преобразования. Текстовый файл с командой и параметрами позволяет воспроизвести процесс и понять, откуда взялся конкретный MP4.

Если Y4M является тестовым эталоном для кодировщиков, удалять его после первой успешной конвертации обычно неразумно: новый MP4 уже прошёл кодирование и не заменяет исходный набор кадров для сравнения алгоритмов.

Частые вопросы о Y4M

Есть ли в Y4M звук?

В стандартном YUV4MPEG2-потоке, который создаёт yuv4mpegpipe, аудиокодек отсутствует. Формат предназначен для видеокадров. Сохраняйте звук отдельно, если он нужен после преобразования.

Можно ли просто переименовать .y4m в .mp4?

Нет. Расширение — только имя. MP4 имеет другую контейнерную структуру. Для получения MP4 требуется реальное преобразование, например через FFmpeg, WonderFox HD Video Converter Factory Pro или Converter.app.

Y4M — это то же самое, что YUV?

Нет. В разговорной речи оба файла могут называть «YUV-видео», потому что внутри лежат YUV/YCbCr-кадры. Но Y4M добавляет stream header и frame headers с важными параметрами; обычный raw YUV обычно их не хранит.

Почему MP4 в Y4M становится в десятки или сотни раз больше?

MP4 обычно содержит видео, сжатое H.264/H.265/AV1 или другим кодеком, который использует пространственную и временную избыточность. Y4M передаёт кадры практически напрямую. Для Full HD 4:2:0 25 fps поток составляет около 74 МиБ/с.

Можно ли сделать Y4M меньше без потери изображения?

Сам Y4M не предназначен для эффективного lossless-сжатия. Для хранения можно использовать lossless FFV1 в Matroska, если последующие инструменты поддерживают этот кодек. При необходимости именно Y4M придётся распаковать lossless-копию обратно.

Можно ли конвертировать Y4M в MP4 совсем без потери?

Обычный MP4 с H.264/H.265 чаще создают в lossy-режиме. Теоретически некоторые кодеки умеют lossless, но совместимость такого файла ниже и он всё равно может потребовать смены chroma/pixel format. Для практического обмена выбирают высокое качество, а исходный Y4M сохраняют как эталон.

Как понять, какой pixel format у файла?

Используйте ffprobe. Поле pix_fmt покажет, например, yuv420p, yuv422p или yuv444p. В текстовом заголовке Y4M также есть поле C, но современные расширения лучше интерпретировать программой, а не вручную.

Почему Y4M воспроизводится в VLC Media Player , но не импортируется в видеоредактор?

Плееру достаточно уметь демультиплексировать и показать поток, а редактор должен принимать Y4M в своём import pipeline. Списки форматов у программ различаются. Для редактора без Y4M-входа сначала создайте совместимый промежуточный файл.

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

Для FFmpeg и программ со встроенным Y4M-demuxer отдельный codec pack не решает задачу: проблема обычно в поддержке контейнера/потока и pixel format, а не в отсутствии «Y4M-кодека».

Можно ли восстановить звук из Y4M?

Нет, если единственный оставшийся файл — Y4M и аудиодорожка в него изначально не помещалась. Нужен исходный контейнер или отдельный аудиофайл.

Какой формат выбрать после Y4M для обычного просмотра?

Для широкой совместимости обычно практичен MP4 с H.264 и yuv420p. Если важнее сохранность кадра для дальнейшего монтажа, лучше выбрать более качественный промежуточный workflow и только в конце сделать delivery-файл.

Итог: какой маршрут рациональнее

Для обычного пользователя Windows, которому нужно не только открыть Y4M, но и смонтировать ролик, рационален двухэтапный путь: сначала проверить и подготовить файл в FFmpeg, затем редактировать совместимый промежуточный файл в ВидеоМАСТЕРе. Прямой Y4M-вход в перечне форматов ВидеоМАСТЕРа отсутствует, поэтому промежуточное преобразование здесь является обязательной частью workflow.

Если требуется только Y4M→MP4 без монтажа, проще использовать WonderFox HD Video Converter Factory Pro или команду FFmpeg. На старой совместимой Windows-системе можно использовать ACDSee Video Converter 5 с прямым Y4M-входом. Для разовой браузерной операции подойдут Converter.app или ezyZip; второй вариант выполняет Y4M→MPEG локально в браузере.

Для инженера, исследователя или энкодера Y4M лучше не «прятать» за MP4 без необходимости. MJPEGTools, GStreamer, FFmpeg и x265 позволяют использовать YUV4MPEG2 по назначению — как простой поток кадров с известной геометрией, FPS и chroma mode. В таком процессе главный критерий качества не размер готового файла, а сохранение исходных параметров и возможность воспроизвести результат тем же набором команд.

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

Оставте свой отзыв о Формат Y4M (YUV4MPEG2): устройство файла, открытие, редактирование и конвертация на компьютере и телефоне

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