Что такое CMAF и как с ним работать: открытие CMFV/CMFA, монтаж и конвертация на Windows, macOS, Linux, онлайн и телефоне

CMAF встречается не как один привычный видеофайл, а как набор связанных медиакомпонентов: видеодорожка, аудиодорожка, фрагменты, инициализационный сегмент и манифест HLS или MPEG-DASH. Поэтому задача «открыть CMAF» сначала требует определить, что именно лежит на диске. Расширение .cmfv используется для CMAF-видеотрека, .cmfa — для аудиотрека, .m4s — для медиасегментов, а .m3u8 или .mpd описывает поток и связывает его компоненты. Для монтажа такой набор сначала приводят к самодостаточному MP4, а для публикации в стриминговой системе, наоборот, мастер-файл сегментируют и упаковывают в CMAF.

Ниже разобран полный рабочий маршрут: как распознать структуру CMAF, проверить дорожки через ffprobe, объединить совместимые .cmfv и .cmfa без повторного кодирования, подготовить MP4 для монтажа, проверить HLS/DASH-поток, а затем при необходимости снова создать CMAF для стриминга. Переименование расширения, ремультиплексирование и транскодирование рассматриваются отдельно, потому что это разные операции с разными последствиями для качества и совместимости.

Что такое CMAF и почему это не просто ещё один видеофайл

CMAF расшифровывается как Common Media Application Format. Это стандарт ISO/IEC 23000-19 для кодирования и упаковки сегментированных медиаданных, рассчитанных прежде всего на адаптивную потоковую доставку. В основе лежит ISO Base Media File Format, а сегменты обычно представлены как fragmented MP4, то есть fMP4. Сам CMAF не заменяет HLS или MPEG-DASH: HLS и DASH остаются системами представления и доставки, а CMAF даёт им общий формат медиасегментов.

Практический смысл этого разделения хорошо виден в типичной схеме. Видеосервис может хранить один набор fMP4-сегментов и выдавать поверх него два манифеста: .m3u8 для HLS и .mpd для MPEG-DASH. Кодеки при этом остаются отдельной характеристикой. Например, внутри CMAF-трека может находиться H.264/AVC или H.265/HEVC, а в аудиотреке — AAC. Контейнер и манифест не превращают неподдерживаемый кодек в поддерживаемый: если устройство не умеет декодировать конкретный профиль HEVC, наличие CMAF само по себе проблему не решит.

Схема взаимосвязи CMAF, fMP4, HLS/DASH и систем защиты

Из-за этой архитектуры фраза «файл CMAF» неоднозначна. Иногда речь идёт о самодостаточном fragmented MP4, который медиаплеер открывает как обычный MP4. Иногда пользователь получает раздельные .cmfv и .cmfa. В потоковых пакетах встречаются и отдельные .m4s, которые не обязаны содержать всю информацию, необходимую проигрывателю без init segment и манифеста. Поэтому правильная первая операция — не конвертация, а диагностика.

Из чего состоит CMAF-пакет

У CMAF есть иерархия, которая объясняет большинство ошибок открытия. На верхнем уровне пользователь видит представление потока — набор видеовариантов, аудиодорожек, субтитров и служебных данных. Внутри находятся треки, а трек делится на сегменты. Сегменты, в свою очередь, могут содержать более мелкие фрагменты и чанки. Такая структура нужна, чтобы плеер мог начать воспроизведение до получения всего ролика и переключаться между вариантами качества.

CMAF Track

Track — последовательность медиасэмплов одного типа. Отдельный видеотрек не обязан содержать звук; отдельный аудиотрек не обязан содержать картинку. Именно поэтому пара .cmfv и .cmfa часто должна рассматриваться как две части одного результата. При создании обычного MP4 эти дорожки можно поместить в один контейнер, если их временные шкалы и кодеки совместимы с выбранным контейнером.

Initialization Segment

Инициализационный сегмент содержит сведения, необходимые для интерпретации последующих медиафрагментов: описание дорожек, временные шкалы, параметры кодеков и структуру контейнера. Отдельный media segment без соответствующего init segment может выглядеть как «битый файл», хотя сам набор сегментов исправен. В HLS на fMP4 и DASH связь с init segment обычно задаётся манифестом.

Media Segment, Fragment и Chunk

Media Segment содержит часть временной шкалы. Внутри fragmented MP4 встречаются пары box-структур moof и mdat: moof описывает фрагмент и расположение сэмплов, а mdat несёт медиаданные. Chunk — ещё более мелкая единица доставки, полезная для low-latency-потоков: сервер может отправлять данные по мере появления, не ожидая завершения длинного сегмента.

Если вы получили один .m4s, вывод «его нужно конвертировать в MP4» преждевременен. Сначала найдите рядом init.mp4, init.m4s, .m3u8 или .mpd. Потоковый пакет нужно собирать как систему, а не обрабатывать каждый кусок независимо.

Сначала определите, что именно у вас есть

Что найденоЧто это обычно означаетПервое действие
.cmfvВидеотрек CMAF/fMP4Проверить через ffprobe; поискать парный .cmfa и init segment
.cmfaАудиотрек CMAF/fMP4Проверить кодек, длительность и временную шкалу; сопоставить с видеотреком
.m4sМедиасегмент fMP4Найти init segment и манифест; не считать отдельный сегмент самостоятельным фильмом
.m3u8HLS-плейлистПроверить URL/пути сегментов и воспроизвести как поток
.mpdMPEG-DASH ManifestПроверить AdaptationSet/Representation и доступность сегментов
.mp4Обычный MP4 либо fragmented MP4Посмотреть контейнер и дорожки через ffprobe или Bento4

Для первичной диагностики подходит команда ffprobe. Она ничего не перекодирует и не меняет файл: инструмент только читает структуру и выводит сведения о потоках. На Windows команды можно запускать в PowerShell или Command Prompt, на macOS и Linux — в терминале.

ffprobe -v error -show_format -show_streams "video.cmfv"

В выводе ищите codec_type=video или codec_type=audio, название кодека, длительность, размеры кадра, частоту кадров и количество дорожек. Если video.cmfv содержит только video, отсутствие звука не является ошибкой. В пакете с раздельными дорожками аудио находится в отдельном audio.cmfa или описано отдельной аудиогруппой в манифесте.

CMF и CMAF — не одно и то же

Расширение .cmf используется и другими типами данных, включая игровые и трёхмерные ресурсы. Это не Common Media Application Format. Нельзя выбирать программу только по похожим буквам в расширении. CMAF-пакет определяется медиаструктурой ISO BMFF/fMP4 и связанными манифестами, а не наличием букв «cmf» в имени файла.

Windows: основной способ — подготовить CMAF и обработать видео в ВидеоМАСТЕР

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

Шаг 1. Проверьте видео- и аудиодорожки через FFmpeg /ffprobe

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

ffprobe -v error -show_streams -show_format "video.cmfv"
ffprobe -v error -show_streams -show_format "audio.cmfa"

У первого файла должен определяться видеопоток, у второго — аудиопоток. Сравните duration. Небольшое различие на границах связано со способом сегментации, но при заметно разных длительностях не объединяйте дорожки как одну пару. Сверьте их с соответствующими Representation, AdaptationSet или плейлистами в манифесте и выберите видео и аудио одного представления.

Шаг 2. Объедините совместимые CMFV и CMFA в MP4 без перекодирования

Если дорожки относятся к одному ролику и кодеки допустимы в MP4, используйте remux с копированием потоков:

ffmpeg -i "video.cmfv" -i "audio.cmfa" -map 0:v:0 -map 1:a:0 -c copy "cmaf_ready.mp4"

-map 0:v:0 берёт первый видеопоток из первого входа, -map 1:a:0 — первый аудиопоток из второго. -c copy означает копирование закодированных потоков без декодирования и повторного сжатия. Поэтому такой процесс быстрее транскодирования и не создаёт дополнительной потери качества из-за нового кодирования. Если контейнер отклоняет конкретный кодек или дорожка повреждена, команда завершится ошибкой — в этом случае нужно разбираться с совместимостью, а не удалять -c copy вслепую.

Шаг 3. Проверьте итоговый MP4

ffprobe -v error -show_entries stream=index,codec_type,codec_name,width,height,channels,sample_rate:format=duration -of default=noprint_wrappers=1 "cmaf_ready.mp4"

У результата должны присутствовать как минимум видеопоток и, если исходный пакет содержал звук, аудиопоток. Сопоставьте длительность с исходными дорожками. Затем воспроизведите начало, середину и конец: так обнаруживаются рассинхронизация, обрыв сегментов и проблемы только на отдельных участках.

Шаг 4. Добавьте подготовленный MP4 в ВидеоМАСТЕР

Откройте программу и нажмите кнопку «Добавить» в левой части главного окна. Выберите cmaf_ready.mp4. После импорта файл появляется в списке; справа доступен встроенный просмотр. Если готовится несколько CMAF-роликов, их можно сначала привести к обычным MP4, а затем добавить в одну очередь.

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

Шаг 5. Удалите лишние участки

Для обрезки выберите ролик и используйте инструмент «Обрезать». В окне разделения границы фрагмента задаются маркерами и временными значениями. Если из одного файла нужно сохранить несколько частей, используйте «Новый фрагмент». После разметки примените изменения.

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

Шаг 6. При необходимости кадрируйте и скорректируйте изображение

В окне редактирования доступны отдельные вкладки для кадрирования, эффектов, текста, улучшений, поворота и скорости. Кадрирование полезно, если после подготовки CMAF нужно убрать поля или привести видео к другому соотношению сторон. Не меняйте разрешение и геометрию только ради «конвертации CMAF»: это уже творческая обработка, а значит потребует повторного кодирования при экспорте.

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

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

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

Шаг 7. Выберите MP4 и запустите экспорт

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

Панель выбора MP4 и других выходных форматов в ВидеоМАСТЕР

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

Плюсы и минусы способа через ВидеоМАСТЕР

Плюсы:

  • техническая часть CMAF отделена от творческого монтажа: пользователь не пытается открыть разрозненные сегменты в редакторе;
  • remux через FFmpeg можно выполнить без повторного кодирования, если дорожки совместимы;
  • после получения MP4 доступны визуальные инструменты обрезки, кадрирования, поворота и эффектов;
  • интерфейс подходит для разовой пользовательской обработки без работы с командной строкой на каждом монтажном шаге.

Минусы:

  • первичная подготовка CMAF всё равно требует технического инструмента;
  • прямой импорт .cmfv/.cmfa не следует считать штатной функцией редактора;
  • после визуального редактирования итоговое видео кодируется заново;
  • для автоматического создания HLS/DASH-пакета нужны специальные packager-инструменты, а не бытовой видеоредактор.

Почему простое переименование .cmfv в .mp4 не равно конвертации

Замена расширения .cmfv на .mp4 меняет только имя файла. Если внутри уже находится самодостаточная fMP4-структура, медиаплеер, определяющий контейнер по содержимому, способен открыть её и с более привычным расширением. Но данные внутри не меняются: у видеотрека без аудио звук не появится, а отдельный сегмент без init segment не станет самодостаточным файлом.

ОперацияЧто меняетсяПовторное кодированиеКогда применять
Переименование расширенияТолько имя файлаНетТолько как диагностический эксперимент, когда контейнер уже корректен
RemuxКонтейнер и расположение потоковНет при -c copyОбъединение совместимых треков или смена контейнера
TranscodeКодированные аудио/видеоданныеДаКогда кодек, разрешение или качество нужно изменить
МонтажСодержание временной шкалыОбычно да при финальном выводеОбрезка, эффекты, композиция, титры
CMAF packagingСегментация и манифестыНе обязательноПодготовка HLS/DASH-доставки из уже закодированных представлений

Поэтому корректная формулировка для .cmfv — сначала проверить содержимое. Если ffprobe видит самодостаточный видеотрек, его можно remux в MP4. Если рядом есть .cmfa, лучше собрать оба потока. Если это часть манифестного пакета, нужно учитывать init segment и последовательность сегментов.

FFmpeg : диагностика, remux и создание CMAF

FFmpeg — основной технический инструмент в этой инструкции. Он полезен в трёх разных ролях: ffprobe анализирует контейнер и дорожки, ffmpeg выполняет remux или транскодирование, а MOV/MP4 muxer умеет записывать CMAF-compatible fragmented MP4 через флаг movflags cmaf. Эти задачи нельзя смешивать: диагностика ничего не меняет, remux меняет упаковку, а транскодирование меняет сами кодированные потоки.

Как увидеть только нужные параметры

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,avg_frame_rate -of default=noprint_wrappers=1 "video.cmfv"
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name,channels,sample_rate -of default=noprint_wrappers=1 "audio.cmfa"

Такая выборка удобнее полного лога, когда нужно быстро убедиться, что найден нужный вариант качества. Для файлов с несколькими аудиодорожками используйте -show_streams без -select_streams, а затем выбирайте конкретный индекс через -map.

Вывод FFmpeg в терминале с информацией о входном и выходном медиапотоке

Как сделать обычный MP4 из одного самодостаточного CMAF/fMP4

ffmpeg -i "input.cmfv" -map 0:v:0 -c copy "video_only.mp4"

Результат остаётся без звука, если в исходнике нет аудиопотока. Это не ошибка команды. Если аудио лежит отдельно, используйте два входа, как в основном Windows-сценарии.

Когда нужен транскодинг вместо -c copy

Повторное кодирование нужно, если конечный контейнер или целевое устройство не принимает исходный кодек, если требуется изменить разрешение/частоту кадров, либо если после монтажа изменились сами кадры. Для обычного MP4 с H.264 и AAC пример выглядит так:

ffmpeg -i "input.mp4" -c:v libx264 -crf 22 -preset medium -c:a aac -b:a 160k "output.mp4"

Этот вариант уже не является без потери качества: видеопоток декодируется и кодируется заново. Значение CRF управляет компромиссом между качеством и размером, а preset влияет на скорость и эффективность сжатия. Для задачи «просто собрать дорожки» такая команда избыточна.

Как сформировать CMAF-compatible fragmented MP4

ffmpeg -i "input.mp4" -c copy -movflags +cmaf "output_cmaf.mp4"

Флаг cmaf относится к MP4/MOV muxer и включает CMAF-compatible fragmented MP4 output. Но один такой файл ещё не равен полноценному многовариантному HLS/DASH-пакету: для ABR-доставки требуются варианты качества, сегментация и манифесты. Для этой части удобнее использовать MP4Box, Bento4, Shaka Packager или облачный сервис.

Плюсы и минусы FFmpeg

Плюсы:

  • точный контроль над входами и дорожками через -map;
  • remux с -c copy без повторного сжатия;
  • ffprobe даёт подробную диагностику до и после обработки;
  • одни и те же команды работают в автоматизированных сценариях и пакетной обработке;
  • есть режим создания CMAF-compatible fragmented MP4.

Минусы:

  • командная строка требует точного понимания входов, потоков и контейнеров;
  • неправильный -map может исключить нужную дорожку;
  • отдельный media segment без init segment не превращается в полноценный файл одной командой «на все случаи»;
  • DRM-защищённый материал нельзя исправить простым remux.

macOS: Bento4 для анализа и iMovie для монтажа

На Mac удобно разделить задачи так же, как на Windows: техническую структуру CMAF проверить утилитой для MP4, а уже подготовленный MP4 монтировать в визуальном редакторе. Bento4 специализируется на MP4, DASH, HLS и CMAF и содержит mp4info, mp4dump, mp4fragment, mp4dash и другие инструменты. iMovie используется после получения самодостаточного совместимого файла.

Bento4: что проверить до монтажа

mp4info показывает высокоуровневую информацию о MP4: дорожки, кодеки и сведения о fragmentation. mp4dump выводит box-структуру и полезен, когда нужно понять, есть ли moof, mdat и связанные служебные блоки. Для пользователя это более точный ответ на вопрос «файл повреждён или просто является частью fragmented MP4», чем попытка открывать его в случайных плеерах.

mp4info video.mp4
mp4dump video.mp4

Если файл уже является корректным MP4 с нужными дорожками, дополнительных преобразований перед монтажом не требуется. Если видео и звук разделены, соберите их через FFmpeg или MP4-инструмент, который умеет mux. Если имеется только фрагмент без инициализации, сначала восстановите контекст пакета из манифеста и init segment.

iMovie : импорт подготовленного MP4

В iMovie на Mac медиаматериал можно перетащить из Finder в событие или импортировать через окно Import. После появления клипа в медиатеке перетащите нужный диапазон на timeline. Этот редактор не нужен для технического соединения CMAF-сегментов: он вступает в работу после того, как файл уже нормально воспроизводится как единый MP4.

Полный интерфейс iMovie на Mac с медиатекой, просмотром и монтажной шкалой
Перемещение видеоклипа на шкале времени iMovie на Mac

Как разделить клип и экспортировать файл

Для разделения выберите клип на timeline, установите playhead в точку разреза и используйте Modify > Split Clip. После монтажа нажмите Share и выберите Export File. В окне экспорта задайте разрешение и параметры качества. Если задача — дальнейшая публикация в CMAF, сначала получите обычный мастер-файл, а сегментацию выполняйте отдельным packager-инструментом.

Плюсы и минусы связки Bento4 + iMovie

Плюсы:

  • Bento4 хорошо показывает внутреннюю структуру ISO BMFF/fMP4;
  • iMovie даёт визуальный timeline для обычного монтажа;
  • техническая упаковка и творческое редактирование не смешиваются;
  • после экспорта можно отдельно сформировать HLS/DASH/CMAF.

Минусы:

  • Bento4 — набор CLI-инструментов, а не бытовой «конвертер одной кнопкой»;
  • iMovie не является CMAF-packager;
  • для сложных потоковых пакетов нужно понимать manifest, init segment и варианты качества.

Linux: GPAC/MP4Box и Kdenlive

На Linux техническая часть удобно решается GPAC/MP4Box. MP4Box умеет работать с ISO Base Media File Format, создавать DASH/HLS-представления и включать CMAF-режим. Для редактирования уже подготовленного MP4 подходит Kdenlive: исходники попадают в Project Bin, монтаж выполняется на Timeline, а готовый файл создаётся через Render.

MP4Box: создание CMAF-пакета

Для CMAF в GPAC используется глобальная опция --cmaf. Базовый пример упаковки:

MP4Box -dash 1000 -profile live -out live/manifest.mpd --cmaf=cmfc source.mp4

Число после -dash задаёт длительность сегментации в миллисекундах для этого примера; -profile live выбирает live-oriented DASH profile; --cmaf=cmfc включает правила CMAF для структурного бренда cmfc. Режим --cmaf=cmf2 применяет правила второго структурного бренда CMAF. Эти параметры управляют упаковкой и не улучшают качество уже закодированного видео.

Kdenlive : добавить подготовленный MP4

В Project Bin нажмите Add Clip or Folder и выберите обычный MP4, полученный после remux или транскодирования. Затем перетащите клип на Timeline. Kdenlive разделяет исходники, монитор клипа, монитор проекта и монтажную шкалу, поэтому удобно проверять исходный фрагмент и одновременно видеть итоговую композицию.

Интерфейс Kdenlive с Project Bin, мониторами, Timeline и Audio Mixer

Разрезать клип и вывести MP4

Для разреза поставьте курсор timeline в нужную точку, выделите клип и используйте Timeline > Current Clip > Cut Clip либо команду из контекстного меню. Для финального вывода откройте Render. В диалоге задайте путь и профиль; для универсального пользовательского файла подходит профиль MP4-H264/AAC. После рендера проверьте полученный файл до следующего шага упаковки в CMAF.

Плюсы и минусы GPAC/MP4Box + Kdenlive

Плюсы:

  • GPAC закрывает профессиональную упаковку ISO BMFF/DASH/HLS/CMAF;
  • Kdenlive даёт полноценную визуальную среду монтажа;
  • можно сохранить этапы пайплайна раздельно: мастер MP4 и потоковый пакет;
  • команды GPAC воспроизводимы и подходят для автоматизации.

Минусы:

  • для GPAC требуется понимание сегментации и профилей;
  • Kdenlive не заменяет packager при создании манифестов;
  • ошибка в таймингах, GOP или структуре входного файла проявится уже на этапе воспроизведения потока.

Shaka Packager: когда нужен отдельный packager для HLS и DASH

Shaka Packager предназначен для подготовки медиа к DASH и HLS и умеет работать с ISO-BMFF. Он не является видеоредактором: основная задача — взять уже подготовленные видео- и аудиопотоки, сегментировать/перепаковать их, сформировать манифесты и при необходимости применить поддерживаемые схемы шифрования. Для CMAF-пайплайна это логичный этап после кодирования, а не замена монтажу.

Базовый transmux

Shaka Packager умеет вывести video и audio из одного MP4 отдельными потоками:

packager in=some_content.mp4,stream=video,out=video.mp4          in=some_content.mp4,stream=audio,out=audio.mp4

Этот пример полезен для понимания архитектуры: видео и аудио могут существовать как отдельные потоки и затем участвовать в общей HLS/DASH-презентации. При работе с CMAF важно контролировать совместимость контейнера, кодека и манифеста, а не ожидать, что «один файл» всегда содержит всё.

Когда выбирать Shaka Packager

  • нужно получить HLS и DASH из уже закодированных представлений;
  • требуется явное управление сегментированием и манифестами;
  • пайплайн включает CENC/DRM и лицензионную инфраструктуру;
  • обработка выполняется на сервере или в автоматизированной сборке.

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

Онлайн и облако: AWS Elemental MediaConvert

AWS Elemental MediaConvert подходит, когда CMAF нужно не «открыть на компьютере», а сформировать как выходной ABR-пакет в облачном кодировочном задании. В консоли MediaConvert CMAF оформлен как отдельный output group. Такой подход полезен для регулярной публикации, где нужны несколько вариантов качества, хранение результатов в объектном хранилище и воспроизводимые job-настройки.

Шаг 1. Добавьте CMAF output group

В задании откройте блок Output groups и добавьте группу вывода. В интерфейсе выберите CMAF. Этот тип группы создаёт fragmented MP4 ABR stack для воспроизведения через HLS- или MPEG-DASH-совместимый клиент.

Окно Add output group в AWS Elemental MediaConvert с выбранным CMAF

Шаг 2. Настройте длительность фрагментов и сегментов

В группе настроек найдите Fragment length. AWS требует согласовывать это значение с Closed GOP cadence, GOP size и frame rate. Неверная комбинация может привести к тому, что проигрыватель запрашивает несуществующие сегменты в конце ролика. Поэтому длину фрагмента нельзя выбирать как случайное «чем меньше, тем быстрее».

В настройках CMAF group используются параметры Fragment length и Segment length; на показанном интерфейсе также видны Segment control и переключатели HLS/DASH manifest. Перед запуском задания сопоставьте длину фрагмента с параметрами GOP и проверьте, что выбранная сегментация согласована со всеми видеовыходами группы.

Параметры Segment control, Fragment length, Segment length и манифестов в CMAF group

Шаг 3. Проверьте выходные манифесты

Для каждого CMAF output group MediaConvert по умолчанию создаёт один верхнеуровневый HLS .m3u8 и один DASH .mpd manifest; оба описывают выходы этой группы. После завершения задания проверяйте не только наличие файлов в destination, но и то, что манифесты ссылаются на существующие сегменты и каждый вариант воспроизводится от начала до конца.

Плюсы и минусы AWS Elemental MediaConvert

Плюсы:

  • графическая настройка CMAF output group;
  • подходит для ABR-лестницы, HLS/DASH и автоматизированных job;
  • параметры сегментации связаны с параметрами кодирования;
  • удобен для регулярной серверной обработки.

Минусы:

  • это облачный pipeline, а не локальный редактор файла;
  • нужно правильно настроить GOP/fragment/segment, иначе ошибки проявятся у плеера;
  • неподходящий или несамодостаточный входной fragment может требовать предварительной подготовки;
  • для разовой домашней конвертации такой процесс сложнее локального remux.

Qencode: CMAF в облачном стриминговом сценарии

Qencode создаёт CMAF-compatible output как fMP4-сегменты и формирует HLS .m3u8 и DASH .mpd из одного задания кодирования. В live streaming CMAF также доступен как выходной формат. Поэтому Qencode нужен здесь как облачный encoder/packager, а не как универсальный сервис для произвольного одиночного .cmfv.

Рабочая роль Qencode

  • для VOD-задания задаются выходы HLS/DASH на fMP4, из которых формируется CMAF-compatible пакет;
  • для live streaming используется output format cmaf;
  • сервис выполняет кодирование и упаковку, после чего выдаёт манифесты для доставки;
  • результат проверяется через HLS/DASH player и полный проход по манифесту.

Такой сценарий отличается от локального файла на диске. Если пользователь просто получил video.cmfv и audio.cmfa, быстрее сначала диагностировать и remux их локально. Qencode имеет смысл, когда задача — развернуть облачную обработку, а не исправить один файл.

Плюсы:

  • CMAF присутствует в актуальном live-stream output workflow;
  • облачная обработка масштабируется без локального кодирования каждого файла;
  • подходит для интеграции с CDN и player-инфраструктурой.

Минусы:

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

Почему универсальные онлайн-конвертеры не стоит автоматически считать CMAF-конвертерами

Convertio, AnyConv, FreeConvert, MConverter и другие универсальные сервисы работают со множеством распространённых типов файлов, но это не делает их CMAF-инструментами. В инструкцию по CMAF нельзя переносить поддержку EMF, AAE, CPF, MDF или другого расширения как доказательство работы с .cmfv/.cmfa. Для редкого медиакомпонента нужен отдельно проверенный CMAF/fMP4 workflow, иначе сервис принимает только самодостаточный MP4 либо отклоняет вход.

Для CMAF выбирайте инструмент с проверенной работой с fMP4/CMAF, HLS/DASH либо ISO BMFF. Если веб-сервис показывает только общий список «video converter», но не описывает CMAF и не принимает тестовый файл, он не должен попадать в инструкцию как подтверждённый способ.

iPhone и iPad: проверка HLS-потока вместо попытки редактировать .cmfv

На мобильном устройстве реалистичная задача — проверить готовый поток по манифесту, а не редактировать отдельные CMAF-сегменты. Для iPhone/iPad подходит M3U8 Stream Player: TV & Video: приложение принимает M3U, M3U8 и HLS streaming links, позволяет добавлять свои потоки и плейлисты и запускает воспроизведение через системный видеоплеер.

Список собственных M3U8 и HLS-потоков в M3U8 Stream Player на iPhone
Форма New Stream с полями Stream name и Stream URL в M3U8 Stream Player

Как проверить CMAF-доставку через HLS

  1. Убедитесь, что сервер публикует HLS manifest с расширением .m3u8.
  2. Проверьте, что ссылки внутри manifest доступны с телефона по сети и не указывают на локальные пути сервера.
  3. Добавьте собственную HLS-ссылку в приложение.
  4. Запустите воспроизведение и проверьте старт, перемотку и переключение качества при наличии нескольких вариантов.

Такой тест проверяет готовый пользовательский путь: manifest → CMAF/fMP4 segments → системный декодер. Он не доказывает, что отдельный .cmfv пригоден для монтажа на телефоне. Если требуется редактирование, сначала получите обычный MP4, а затем используйте видеоредактор, поддерживающий этот MP4.

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

  • приложение является плеером, а не CMAF-packager;
  • оно не объединяет раздельные .cmfv/.cmfa в монтажный файл;
  • воспроизведение зависит от доступности URL, корректности manifest и поддержки кодека iOS.

Android: Just (Video) Player для проверки DASH/HLS

Just (Video) Player — Android-плеер на базе ExoPlayer/Media3. Он воспроизводит DASH и HLS и работает с MP4-контейнером, поэтому подходит для проверки готовой CMAF-доставки через стандартный HLS/DASH manifest. Само приложение не является редактором и не предназначено для сборки разрозненных сегментов.

Интерфейс Just Video Player во время воспроизведения видео
Just Video Player с выбором дорожки субтитров

Как открыть поток

У Just Player нет отдельного универсального поля для ввода URL. Совместимую streaming link обычно открывают из другого приложения: нажимают ссылку и выбирают Just Player как обработчик либо используют системную команду Share для URL. Поэтому для технического теста удобно сначала открыть .mpd или .m3u8 в браузере/файловом менеджере, а затем передать ссылку плееру.

При ошибке сначала проверяйте manifest на компьютере. Если он ссылается на недоступный host, требует авторизацию, содержит неподдерживаемый кодек или повреждённый init segment, мобильный плеер не сможет компенсировать проблему. Сообщение о воспроизведении — симптом, а не доказательство причины.

Плюсы:

  • поддержка DASH и HLS;
  • основан на ExoPlayer/Media3-подходе Android;
  • умеет выбирать аудио- и subtitle-дорожки;
  • подходит для контрольного воспроизведения на реальном Android-устройстве.

Минусы:

  • нет монтажного timeline;
  • нет собственной полноценной формы ввода URL;
  • не создаёт CMAF-пакет и не объединяет отдельные треки;
  • совместимость в конечном счёте зависит от кодека и возможностей устройства.

VLC media player : быстрый просмотр, но не инструмент для сборки CMAF

VLC media player полезен как быстрый плеер для самодостаточного MP4/fMP4 и сетевых HLS-потоков. Если переименованный .cmfv уже содержит самодостаточную MP4-структуру, VLC распознаёт контейнер по содержимому независимо от необычного расширения. Такое воспроизведение не доказывает, что переименование выполнило конвертацию или что в файле есть все необходимые дорожки.

Окно VLC для открытия сетевого потока по URL

Используйте VLC media player после ffprobe, а не вместо него. Плеер хорошо отвечает на вопрос «воспроизводится ли этот результат», а ffprobe — на вопросы «что находится внутри», «какие кодеки», «сколько дорожек», «какая длительность». Для монтажа и CMAF packaging нужны другие инструменты.

Плюсы:

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

Минусы:

  • не показывает структуру CMAF настолько подробно, как специальные анализаторы;
  • не заменяет mux/packaging;
  • успешное воспроизведение одного файла не гарантирует правильность всего ABR-пакета.

Плееры и платформы: Shaka Player, JW Player и Bitmovin

Shaka Player, JW Player и Bitmovin относятся к конечному этапу CMAF-доставки, а не к монтажу. Такие плееры читают HLS/DASH manifest, загружают нужные сегменты, выбирают представление качества и передают закодированные потоки браузерному декодеру. Если плеер сообщает об ошибке manifest или segment, проверять нужно encoder/packager pipeline, пути к сегментам, MIME type, кодек и DRM-конфигурацию.

Shaka Player

Shaka Player ориентирован на DASH и HLS в браузере. Для диагностики полезно различать категории ошибок: отсутствующий сегмент, некорректный init segment, неподдерживаемый контейнер/кодек, повреждённый manifest или ограничения DRM. Это помогает не искать «конвертер CMAF», когда фактическая проблема находится в ссылке на сегмент или MIME type.

JW Player

JW Player используется для тестирования уже опубликованного CMAF/HLS/DASH playback по manifest. Для первичной проверки локального файла браузерный player добавляет лишние переменные — веб-сервер, CORS, MIME types и сетевые пути. Поэтому сначала проверяйте контейнер и дорожки локально, а web delivery — после упаковки и публикации.

Bitmovin

Bitmovin также применяется как web/player-инструмент в CMAF-сценариях. Его полезно использовать для независимого контрольного воспроизведения после упаковки. Когда один player играет поток, а другой нет, сравнивают поддержку кодека, версию HLS/DASH, DRM-конфигурацию и требования конкретного клиента, а не переделывают исходное видео без диагностики.

Инфраструктурные платформы: Wowza, VdoCipher, Ant Media, Axinom, Gumlet и Kinescope

Wowza, VdoCipher, Ant Media, Axinom, Gumlet и Kinescope работают на уровне encoding, hosting, CDN, player, DRM или live streaming. Их нельзя ставить в один ряд с локальным конвертером: они показывают место CMAF в полном производственном pipeline доставки видео.

ПлатформаРоль в CMAF-сценарииЧто пользователь получаетЧто это не заменяет
Wowzaстриминговая инфраструктура и объяснение CMAF/fMP4/HLS/DASHпотоковую доставку и playback workflowлокальный монтаж и ручную диагностику файла
VdoCipherвидеодоставка с защитой и стриминговым pipelineзащищённое воспроизведение и инфраструктуруобычный видеоредактор
Ant Medialive streaming и low-latency архитектурасерверный поток и сегментациюлокальный remux отдельного файла
Axinomencoding/DRM/OTT-инфраструктураCMAF в производственном workflowпростое открытие случайного .cmfv
Gumletvideo processing/delivery workflowоблачную подготовку и доставкумонтажный timeline
Kinescopehosting, player, streaming, CDN и защитауправляемую платформу публикациинизкоуровневый анализ moof/mdat

Выбирать такую платформу имеет смысл, когда CMAF — часть продукта или сервиса: вебинаров, OTT, обучения, медиапортала, live-трансляций. Для разовой домашней задачи с двумя файлами .cmfv/.cmfa это слишком тяжёлый уровень инфраструктуры.

Как преобразовать обычный MP4 обратно в CMAF

Обратная задача возникает после монтажа. Видеоредактор выдаёт обычный мастер MP4, но сайту или CDN нужен adaptive streaming. В этом случае не стоит заставлять редактор «сохранять в CMAF». Правильнее экспортировать качественный мастер, а затем выполнить encoding/packaging отдельным инструментом.

Вариант 1. FFmpeg : CMAF-compatible fMP4

ffmpeg -i "master.mp4" -c copy -movflags +cmaf "master_cmaf.mp4"

Этот вариант полезен для получения CMAF-compatible fragmented MP4 при совместимых потоках. Для полноценного ABR-потока одной копии недостаточно: нужны несколько битрейтов/разрешений и манифесты.

Вариант 2. GPAC/MP4Box: сегментация и manifest

MP4Box -dash 2000 -profile live -out package/manifest.mpd --cmaf=cmfc master.mp4

Здесь MP4Box уже работает как packager. Параметры сегментации подбираются под конкретный профиль и GOP исходного видео. Для production-потока дополнительно проверяют keyframe alignment между вариантами качества.

Вариант 3. Bento4

В Bento4 сначала убеждаются, что исходные MP4-файлы fragmented и содержат нужные потоки, затем используют mp4dash для создания DASH/HLS presentation на базе fMP4. Инструмент подходит, когда нужно одновременно контролировать структуру MP4 и упаковку.

Вариант 4. AWS Elemental MediaConvert

Для облачного pipeline создайте CMAF output group, задайте видеовыходы ABR, audio output, segment/fragment settings и destination. Это удобнее CLI, когда обработка должна масштабироваться на библиотеку материалов и управляться через задания.

Вариант 5. Qencode live streaming

Для live-входа CMAF задаётся как live output format в Qencode. Это другой сценарий, чем VOD-файл: поток кодируется и сегментируется непрерывно, а manifests обновляются во время трансляции.

DRM и CENC: почему защищённый CMAF нельзя «починить» сменой расширения

CMAF часто используется вместе с Common Encryption. В таком пакете сегменты могут быть зашифрованы, а manifest содержит или связывает информацию, необходимую player/DRM-системе. Ключи выдаются через лицензирующую инфраструктуру. Переименование .cmfv в .mp4, remux или обычный видеоредактор не превращают зашифрованный контент в открытый.

Для легитимного рабочего pipeline проверяйте, есть ли признаки шифрования в metadata/manifest, правильно ли настроена DRM-система и получает ли ваш player лицензию. Эта статья не рассматривает обход DRM. Если исходник получен из собственной системы, исправляйте ключи, PSSH/manifest и настройки лицензирования на стороне вашего сервиса.

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

СимптомТехническая причина для проверкиЧто проверить
Видео есть, звука нетоткрыт только .cmfvнайти .cmfa; проверить audio stream через ffprobe
.m4s не определяется как видеонет init segmentнайти EXT-X-MAP в HLS или initialization info в DASH
Плеер пишет, что сегмент отсутствуетmanifest ссылается на неверный URLпроверить пути и HTTP-ответ каждого segment URL
Один player играет, другой нетразная поддержка кодека/DRM/manifestсопоставить codec string, MIME type и ограничения клиента
После remux рассинхрон звукадорожки не являются парой или расходятся timestampsсравнить duration/time base и соответствующие Representation/playlist в manifest
После переименования файл всё равно не открываетсяданных недостаточно или контейнер повреждёниспользовать ffprobe/mp4dump; найти init segment
Ошибка при -c copy в MP4кодек/параметр несовместим с контейнеромпроверить codec_name; при необходимости транскодировать только проблемный поток
Поток стартует, но падает ближе к концуошибка сегментации или отсутствующий segmentпроверить manifest, fragment length/GOP и полный набор сегментов
Файл виден как CMF, а медиа-инструменты его не понимаютэто другой формат с похожим расширениемпроверить сигнатуру/назначение исходного приложения
Защищённый поток не воспроизводитсяDRM/ключ/лицензия не согласованыпроверить легитимную DRM-конфигурацию и player license flow

Сценарий: есть только один .cmfv

Сначала выполните ffprobe. Если инструмент видит нормальный video stream и файл самодостаточен, попробуйте remux в MP4 с -c copy. Если выход создаётся и воспроизводится, вопрос решён для video-only. Если нужен звук, его придётся получить отдельно: из отсутствующего аудиотрека программа его не восстановит.

Сценарий: есть .cmfv и .cmfa

Проверьте оба файла, сопоставьте длительность и затем объедините явным -map. После создания MP4 снова проверьте дорожки. Это надёжнее, чем добавлять оба файла в редактор и пытаться синхронизировать «на глаз».

Сценарий: есть папка из десятков .m4s

Ищите manifest и init segment. Порядок сегментов, варианты качества, аудио и видео обычно описаны именно там. Склеивание файлов простой конкатенацией может разрушить структуру ISO BMFF. Используйте packager/демультиплексор, который понимает manifest и fragmented MP4.

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

Проверка результата должна быть отдельным этапом. Файл, который «создался без ошибки», ещё не гарантирует корректного playback на всей длительности. Минимальная проверка включает структуру контейнера, наличие дорожек, воспроизведение и, для потокового пакета, доступность каждого уровня представления.

1. Проверьте дорожки

ffprobe -v error -show_entries stream=index,codec_type,codec_name,width,height,channels,sample_rate -of table "result.mp4"

2. Проверьте длительность

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "result.mp4"
3. Сравните начало, середину и конец

Откройте итог в VLC media player или другом player. Прослушайте звук в начале и середине, перемотайте к последним секундам. Если проблема возникает только после определённого сегмента, простая проверка первых десяти секунд её не обнаружит.

4. Проверьте manifest

Для HLS убедитесь, что master playlist ссылается на существующие media playlists, а они — на доступные segments и init segment. Для DASH проверьте, что Representations и AdaptationSets соответствуют реальным файлам. Ошибка HTTP 404 на одном сегменте разрушает playback независимо от того, насколько правильно закодированы остальные.

5. Проверьте реальное устройство

Браузер на компьютере, iPhone и Android могут поддерживать разные комбинации кодеков, DRM и streaming features. Финальный контроль делайте на тех классах устройств, которые действительно будут использовать материал. Для мобильной проверки в этой инструкции используются HLS/DASH-плееры, а не попытка открыть отдельный .cmfv напрямую.

Сравнение способов работы с CMAF

ИнструментПлатформа/типДиагностикаRemuxМонтажСоздание CMAF/HLS/DASHГлавное ограничение
ВидеоМАСТЕРWindows, GUIпосле подготовки MP4нет как специализированной CMAF-задачида, базовое редактированиенет специализированного CMAF packagingнужен обычный совместимый видеофайл
FFmpegWindows/macOS/Linux, CLIда, через ffprobeдатехническая обработка, не timelineCMAF-compatible fMP4; также потоковые возможностикомандная строка и необходимость понимать streams
Bento4Windows/macOS/Linux, CLI toolkitда, mp4info/mp4dumpMP4-операциинет timelineда, mp4dash/HLS-DASH toolingориентирован на техническую структуру MP4
iMoviemacOS, GUIвизуально после подготовкинет как CMAF-задачиданетне является packager
GPAC/MP4BoxWindows/macOS/Linux, CLIдада, ISO BMFF operationsнет timelineда, --cmaf, DASH/HLSпорог входа
KdenliveWindows/macOS/Linux, GUIвизуально после подготовкине основной сценарийда, многодорожечныйнет специализированного CMAF packagingсначала нужен нормальный media input
Shaka PackagerWindows/macOS/Linux, CLIанализ входа при упаковкеtransmuxнетда, DASH/HLS и encryptionне редактирует содержание
AWS Elemental MediaConvertоблакоjob/output validationчерез pipelineнет timelineда, CMAF output groupоблачная настройка и стоимость обработки
Qencodeоблако/live streamingчерез pipelineне локальный remuxнет timelineCMAF как live outputне универсальный локальный converter
VLC media playerdesktop/mobile playerвизуальнаянетнетнетуспешный playback не объясняет структуру
M3U8 Stream PlayeriPhone/iPad playerпроверка HLSнетнетнеттолько playback
Just (Video) PlayerAndroid playerпроверка HLS/DASHнетнетнеттолько playback

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

Нужно просто посмотреть один .cmfv

Сначала проверьте файл через FFmpeg/ffprobe. Если это самодостаточный fMP4-видеотрек, сделайте remux в .mp4 с -c copy и проверьте результат в VLC media player. Переименование расширения оставляйте только как диагностический эксперимент: оно не добавляет звук и не чинит отсутствующий init segment.

Есть .cmfv и .cmfa, нужен обычный MP4

Используйте два входа FFmpeg, явный -map и -c copy. Это самый прямой сценарий без дополнительного сжатия. После этого проверяйте две дорожки через ffprobe.

Нужно отредактировать ролик на Windows

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

Нужно отредактировать на Mac

Проверьте MP4/CMAF-структуру через Bento4 или FFmpeg, получите самодостаточный MP4 и работайте с ним в iMovie. Для профессионального packager-процесса монтаж и упаковку держите раздельно.

Нужно редактировать на Linux

Для упаковки и анализа используйте GPAC/MP4Box или FFmpeg, для визуального монтажа — Kdenlive. После Render снова проверяйте мастер до создания сегментов.

Нужно создать CMAF для сайта или CDN

Выбирайте GPAC/MP4Box, Bento4, Shaka Packager или AWS Elemental MediaConvert. Здесь важны ABR-представления, alignment keyframes, длина сегментов, manifests, MIME types и проверка player. Видеоредактор решает другую задачу.

Нужно проверить поток на телефоне

На iPhone/iPad проверяйте HLS .m3u8, на Android — HLS или DASH. Это тест конечной доставки. Редактировать отдельные .m4s или .cmfv на телефоне для такой проверки не требуется.

Файл защищён DRM

Работайте со своей легитимной DRM-инфраструктурой: manifest, encryption metadata, license server и player. Обычный remux не заменяет получение корректной лицензии и не снимает защиту.

Практические ошибки, которые чаще всего портят результат

Ошибка 1. Объединять файлы без проверки дорожек

Два файла с похожими именами не обязательно относятся к одному варианту потока. Перед mux сравнивайте длительность и manifest. Особенно это важно для ABR, где несколько видеотреков имеют одинаковый контент, но разные разрешение и bitrate.

Ошибка 2. Автоматически перекодировать всё

Если нужно только объединить совместимые H.264/AAC-треки в MP4, транскодирование тратит время и добавляет поколение сжатия. Сначала пробуйте -c copy. Кодируйте заново только при реальной несовместимости или после изменения картинки.

Ошибка 3. Считать отсутствие звука повреждением видео

В CMAF звук и видео часто разделены. Проверяйте .cmfa, audio AdaptationSet или audio playlist. Восстановить отсутствующий аудиопоток из видеотрека невозможно.

Ошибка 4. Склеивать .m4s обычной конкатенацией

Fragmented MP4 имеет box-структуру и timestamps. Побайтовое соединение файлов без понимания init/fragment может создать контейнер, который частично читается, но ломается при seek или на границах. Используйте инструмент, понимающий ISO BMFF.

Ошибка 5. Проверять только один player

Разные players по-разному обрабатывают отклонения в manifest и набор поддерживаемых кодеков. Проверяйте как минимум техническую структуру, web player и одно реальное целевое устройство.

Ошибка 6. Игнорировать кодек

CMAF унифицирует упаковку, но не делает HEVC доступным на устройстве, где нет подходящего декодера. При ошибке воспроизведения проверяйте codec_name и codec string до изменения манифеста.

Ошибка 7. Выбирать слишком маленький fragment без согласования с GOP

В ABR-пайплайне длина fragment связана с GOP и frame rate. Неподходящее значение может дать неполные хвостовые сегменты и ошибки player. Настройка low latency требует согласованной структуры кодирования, а не одной цифры в поле.

Ошибка 8. Редактировать уже упакованные сегменты вместо мастер-файла

Для монтажа лучше вернуться к самодостаточному мастер-файлу, изменить содержание, заново экспортировать и только после этого пересобрать CMAF. Это проще контролировать и меньше рискует разрушить alignment между вариантами.

Критерии выбора инструмента

КритерийЧто важноПодходящий класс инструмента
Нужна только диагностикадорожки, кодеки, timestamps, fragmentationffprobe, Bento4, MP4Box
Нужен MP4 без потери от перекодированиясовместимые video/audio streamsFFmpeg с -c copy или другой mux-инструмент
Нужен визуальный монтажtimeline, обрезка, кадрирование, эффектыВидеоМАСТЕР, iMovie, Kdenlive после подготовки MP4
Нужно создать HLS/DASH/CMAFsegmenting, manifests, ABRGPAC/MP4Box, Bento4, Shaka Packager, AWS MediaConvert
Нужна мобильная проверкареальный playback на целевом устройствеHLS/DASH player
Нужна автоматизациякоманды, job templates, APIFFmpeg, GPAC, Bento4, Shaka Packager, MediaConvert
Есть DRMCENC, manifest signalling, license flowpackager + легитимная DRM-инфраструктура

Главный критерий — не операционная система, а этап процесса. Один и тот же проект обычно использует несколько инструментов: анализатор на входе, видеоредактор для изменения содержания, packager для сегментации и player для контрольного воспроизведения.

FAQ

Можно ли просто изменить расширение .cmfv на .mp4?

Можно попробовать только как диагностический приём, если файл уже содержит самодостаточную MP4/fMP4-структуру. Переименование не является конвертацией, не добавляет аудио и не восстанавливает init segment.

Почему после преобразования CMFV в MP4 нет звука?

Расширение .cmfv используется для CMAF-видеотрека. Ищите соответствующий .cmfa, audio playlist или audio AdaptationSet и объединяйте аудиодорожку с видео.

Что делать с файлом .cmfa?

Проверьте его через ffprobe. Если это аудиотрек нужного ролика, добавьте его вторым входом при mux в MP4 и выберите через -map 1:a:0.

Чем .m4s отличается от .cmfv?

.m4s часто используется как расширение отдельных media segments в HLS/DASH на fragmented MP4. .cmfv обычно обозначает CMAF video track. На практике конкретная структура важнее имени: диагностируйте содержимое инструментом для ISO BMFF.

CMAF и HLS — одно и то же?

Нет. CMAF задаёт общий формат сегментированных медиаданных, а HLS — систему потоковой доставки и playlists. HLS может использовать fMP4/CMAF-сегменты.

CMAF и MPEG-DASH — одно и то же?

Нет. DASH использует MPD manifest и правила адаптивной доставки, а CMAF может служить форматом общих media segments для DASH и HLS.

Можно ли редактировать отдельный CMAF chunk?

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

Нужен ли manifest, если у меня уже есть все сегменты?

Manifest задаёт порядок и отношения между представлениями, аудио, видео и инициализационными данными. Без него можно технически исследовать сегменты, но надёжно восстановить весь поток значительно сложнее, особенно при нескольких вариантах качества.

Можно ли конвертировать CMAF без потери качества?

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

Почему CMAF-поток работает на компьютере, но не на телефоне?

Проверьте кодек и профиль, DRM, MIME type, доступность manifest/segments с мобильной сети и требования конкретной ОС. Общий формат сегментов не отменяет различия декодеров и системных ограничений.

Как понять, что проблема именно в init segment?

Симптом — media segment существует, но player или анализатор не может определить дорожку/кодек без дополнительного файла. Найдите в HLS EXT-X-MAP или initialization reference в DASH и убедитесь, что указанный init segment доступен.

Нужно ли всегда использовать AWS или другой облачный сервис?

Нет. Для одного файла локальных инструментов достаточно. Облако имеет смысл при регулярном ABR-кодировании, API-интеграции, live streaming или больших объёмах.

Можно ли открыть CMAF в обычном видеоредакторе?

Самодостаточный fragmented MP4 иногда открывается как обычный MP4, но раздельные CMAF-треки и сегментированные пакеты лучше сначала привести к стандартному самодостаточному файлу. Так меньше риска потерять звук или получить неполный fragment.

Итог

Для единичного .cmfv или пары .cmfv/.cmfa самый контролируемый путь — сначала определить дорожки через ffprobe, затем выполнить remux без повторного кодирования и только после этого переходить к монтажу. На Windows подготовленный MP4 можно обработать в ВидеоМАСТЕР, на macOS — в iMovie, на Linux — в Kdenlive. Если задача обратная и нужен поток для сайта, используйте packager: GPAC/MP4Box, Bento4, Shaka Packager или CMAF output group в AWS Elemental MediaConvert.

Для мобильного устройства полезнее проверять конечный HLS/DASH manifest, а не пытаться редактировать отдельные сегменты. Если же поток защищён CENC/DRM, проблема решается в легитимной цепочке шифрования и лицензирования. Главное правило CMAF — сначала определить роль каждого файла в пакете, затем выбрать инструмент для конкретного этапа: анализ, remux, монтаж, packaging или playback.

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

Оставте свой отзыв о Что такое CMAF и как с ним работать: открытие CMFV/CMFA, монтаж и конвертация на Windows, macOS, Linux, онлайн и телефоне

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