варианты vismv
Там нет чисел, которые будут переданы -vismv
качестве аргументов. Поддерживаются только они:
pf
- прогнозируемые в прямом направлении MV P-кадров
bf
- прогнозируемые в прямом направлении MV MV-кадров
bb
- прогнозируемые в обратном направлении MV B-кадров
Я предполагаю, что если вы используете целые числа, они отображаются на 1, 2 и 3, соответственно.
vis_mb_type
Я просмотрел код и нашел соответствующую часть в mpegvideo.c
, начиная со строки 2029. Он преобразует значения COLOR(theta, r)
значения U и V из цветового пространства YUV, используя следующую функцию:
#define COLOR(theta, r) \
u = (int)(128 + r * cos(theta * 3.141592 / 180)); \
v = (int)(128 + r * sin(theta * 3.141592 / 180));
Вот значения цвета для каждого типа макроблока, включая их значения UV и соответствующий цвет RGB при Y = 128.
COLOR(120, 48), UV(104, 169.57), RGB(184, 107, 86)
Условие: IS_PCM (== MB_TYPE_INTRA_PCM)
COLOR(30, 48), UV(169.57, 152), RGB(160, 97, 200)
Условие: IS_INTRA && IS_ACPRED) || IS_INTRA16x16
COLOR(90, 48), UV(128, 176), RGB(193, 94, 128)
Состояние: IS_INTRA4x4
COLOR(150, 48), UV(86.43, 152), RGB(160, 125, 55)
Состояние: IS_DIRECT
COLOR(170, 48), UV(80.73, 136.34), RGB(139, 138, 46)
Условие: IS_GMC && IS_SKIP
COLOR(190, 48), UV(80.73, 119.66), RGB(116, 149, 46)
Состояние: IS_GMC
COLOR(240, 48), UV(104, 86.43), RGB(71, 165, 86)
Состояние:USES_LIST (mb_type, 1))
!USES_LIST(mb_type, 1))
Состояние:USES_LIST (mb_type, 0))
COLOR(0, 48), UV(176, 128), RGB(128, 111, 211)
Условие: !USES_LIST(mb_type, 0))
- это COLOR(300,48), UV(152, 86.43), RGB(71, 148, 169)
поэтому оно может или не может прервать выполнение программы в случае сбоя утверждения.
Я не проверял это, но мне кажется, что это правильно. Информация о переключателях отладки и цветах макроблоков также объясняется в вики FFmpeg.