|
|||
Различные кодеки и цвет
Недавно с удивлением обнаружил пренеприятнейшую вещь - цвет при кодировании различными кодеками может существенно меняться. Обнаружилось это, когда хотел перекодировать из дурного формата MJPEG (фотик в нем пишет) в DivX или xVid. При перекодировании различным софтом картинка всегда сильно засвечивается, цвета становятся блеклыми. Причем VirtualDub показывает исходную и конечную картинку в процессе кодирования одинаковыми. Более того, загруженный назад в VirtualDub перекодированный файл играется им нормально - все в порядке с цветом. Другие же плеера (BSPlayer, VLC) показывают сильно засвеченную картинку.
Я раньше не обращал внимания, но сейчас стал приглядываться к разнице в цвете при проигрывании AVI VirtualDubом и другими плеерами. Вспомнил, что давно скачанная отсюда старая версия (~700Мb ) "Сказки старого волшебника" была сильно засвеченная. У меня остался кусочек того фильма. Сравниваю картинку в VirtualDub и BSPlayer и вижу ту же историю. Я в шоке, ранее полагал, что кодеки не могут менять цвет в принципе. Один и тот же файл играется разным софтом совершенно по-разному. Вот еще вопрос - ведь железные плееры могут выдавать цвет каким-то третьим способом. Никто не знает, сравнивал ли кто-нибудь когда-нибудь что происходит с цветом при кодировании разными кодеками или разными версиями одного кодека и извращение цвета различными плеерами? |
|
|||
По признакам, скорее всего расстроился оверлей. Ну и вообще, у всех кодеков есть собственные настройки. За показ же в VirtualDub отвечают другие модули этих кодеков, c интерфейсом VFW, а не DirectShow, поэтому такая вот разница в показаниях.
|
|
|||
Turtle: Спасибо за идею. Проделал то же самое на других компах - там все нормально. Да, видимо это какие-то глобальные настройки отображения видео в компе. А я то был раньше уверен, что это просто экраны у Acer некачественные. Хорошо, что VirtualDub использует свои настройки. Интересно, на железных плеерах настройки тоже могут сбиться?
А где этот "оверлей" настраивается? Это настройки чего? |
|
|||
Оверлей — это область в видеопамяти для "прямого" вывода изображения. Поскольку такой ресурс у каждой видеоплаты в единственном числе, его неисправность определяется просто — достаточно запустить одновременно несколько копий видеопроигрывателя. Первой достанется оверлей, а вторая и последующие будут выводить на экран программно.
Если неисправен оверлей, то изображения будут сильно отличаться (съехавшие настройки оверлея обычно лечатся переустановкой видеодрайвера). Если же они практически одинаковые, значит проблема в настройках кодека DirectShow, который в данный момент подхватывает изображение — обычно они в виде пультов разделе "Панель управления". Посмотреть, какой именно кодек подхватывает, можно при помощи соответствующих утилит, например GSpot. Ещё вариант, что неправильно установлен, или вообще отсутствует, или криво создан ICC-профиль монитора (в настройках видеоплаты). Тогда, если не получится найти нормальный, лучше его вообще отключить, либо подключить от родственной модели. |
|
|||
Спасибо. Да, одновременный запуск двух роликов выявил, что только первый искаженный.
В родных настройках видеокарточки (ATI Mobility Radeon 9700) есть пункт "Оверлей", но там все уже чем-то выставлено и поменять нельзя (все в сером). DirectShow в Винде отдельно не конфигурируется, только DirectX. Я могу только отключить/включить "оверлей". Тогда цвет нормальный, но изображение перевернуто. Буду нудохаться с переустановкой драйвера. |
|
|||
agor: Спасибо. Я ранее пробовал запустить ролик при открытых настройках "оверлей" - нулевой эффект. А сейчас запустил ролик и бегом открыл настройки, "оверлей" и смог их изменить.
Все теперь нормально. Проблема решена. Большое всем спасибо! |