Я воспроизводю видео (mp4, содержащий видеопоток в кодировке x264) с помощью специального проигрывателя, использующего медиа-основу.
Когда я конвертирую информацию YUV в RGB, мне нужно учитывать цветовую матрицу и диапазон, используемые во время кодирования.
Некоторые из моих видео содержат эту информацию, я могу использовать MediaInfo.exe или FFMPEG, чтобы увидеть, что она присутствует.
Однако для таких видео, если я посмотрю на соответствующие свойства Media Foundation (Расширенная информация о цвете) свойства отсутствуют в файлах.
Итак, как-то мне нужно найти способ получить доступ к информации.
Media Foundation предоставляет доступ к MF_MT_MPEG4_SAMPLE_DESCRIPTION и MF_MT_MPEG_SEQUENCE_HEADER для видеопотока, но я не могу найти описания того, что они содержат.
Я заметил, что MF_MT_MPEG_SEQUENCE_HEADER намного длиннее для видео с присутствующей информацией, и это (Краткое руководство по заголовкам MPEG) кажется, что заголовки могут содержать нужную мне информацию.
Я ищу цветовой диапазон (ограниченный / полный), основные цвета, передаточные характеристики и матричные коэффициенты (BT.709 и т. Д.).
Буду очень признателен за любую помощь в поиске этой информации из видеопотока Media Foundation.
Спасибо
Жюль
Обновление - заголовок последовательности
Заголовок последовательности, по-видимому, является подмножеством описания образца MPEG4, хотя я не могу найти ничего, что указывало бы на то, какие биты данных фактически содержат / не содержат конкретно.
Заголовок последовательности, по-видимому, содержит данные, структурированные как поток байтов MP4, как описано в Документ стандартов H264 и включает в себя VUI (информация по удобству использования видео - приложение E к документу), который затем может включать интересующую меня информацию о цвете.
Учитывая, что это поток байтов, мне нужно знать, где он начинается и есть ли какой-нибудь код, который я мог бы использовать для его декодирования.
В FFMPEG в libavcodec / h264_ps.c есть функция с именем ff_h264_decode_seq_parameter_set, которая вызывает decode_vui_parameters. Кажется возможным, что seq_parameter_set отображается на MF_MT_MPEG_SEQUENCE_HEADER, и этот код можно использовать для декодирования данных.
Если у кого-то есть непосредственный опыт декодирования этих данных, это было бы очень полезно.
Спасибо еще раз
Обновление - Похожие сообщения
Я нашел этот Как декодировать наборы параметров sprop в SDP H264? и Возможные Расположение наборов параметров последовательности / изображения для потока H.264, которые весьма полезны.
Заголовок последовательности будет выглядеть как набор параметров последовательности или изображения (pps), а параметры, которые мне нужны, являются подмножеством расширения VUI.
Кроме того, это сообщение структура потока H.264 дает высокий уровень структуры данных потока, и MF_MT_MPEG_SEQUENCE_HEADER, похоже, начинается с NAL 0x00 0x00 0x01, поэтому я предполагаю, что это NAL, содержащий PPS.