Как стать автором
Обновить

Записываем видео с VGA-выхода видеокарты — железные методы

Время на прочтение5 мин
Количество просмотров75K
Записать видео с VGA-выхода – что может быть проще… Казалось бы. Но увы, на деле всё немного сложнее. В этом посте я расскажу, как для себя решил проблему записи видео с VGA-выхода видеокарты очень старого компьютера, какие были промежуточные решения и на чем остановился. Фанатам старых игр железа, а так же новых технологий и захвата видео посвящается.



Зачем


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

  1. Компьютеры старые и слабые, водрузить на них некий “аналог fraps’а” не представляется возможным. Да и какой софт для записи вы поставите на машинку, где и Win 3.1 пойдёт со скрипом? Да для первого пентиума или для DOS-режима вы тоже вряд ли что найдёте.
  2. Вариант “воткни видеокарту с ТВ-выходом” тоже не вариант. А если я хочу записать картинку с первой Voodoo или какой-то ещё бОльшей экзотики? И опять же, упираемся в софт. Нужна же универсальность.
  3. Вариант “запуска на эмуляторе” – не подходит. Игры “позднего DOS’а” умудряются тормозить или идти не плавно даже на современном i7, если эмулировать их DosBox’ом. Если же нам понадобится запустить игру, которая даже на WinXP глючит, и нормально работает на ОС не старше Win98 или Win95, но при этом требует трёхмерного ускорения – тут эмуляторы не шибко помогут, ускорение игровой графики там печальное.
  4. Снимать экран камерой? Нет, существуют любители “экранок”, но этот способ попахивает извращением и “последним шансом”.

Железо для захвата


В качестве машинки для захвата видео был использован такой вот компьютер:

Процессор: Intel Core 2 Duo E4500, 2.2 ГГц
Видеокарта: NVidia 8800 GS
Оперативная память: 2 ГБ DDR2
Жесткий диск: WDC WD1600, подключен по SATA

Специально я его не подбирал – он просто оказался под рукой.

Попытка номер раз — китайская


Первой попыткой была следующая идея: а что если подобрать VGA-to-TV адаптер? Дёшево и сердито. А писать полученную картинку будем ТВ-тюнером, у меня как раз был такой от фирмы Beholder (моделька с номером 503, вариант под шину PCI). Сказано – сделано. Был за 20$ куплен вот такой вот китайский адаптер под названием VGA to TV RCA Composite S-video Converter Box for PC Laptop TTH-123462:



Ещё фото.




Интересные моменты этой железяки:
  • Питается по USB-кабелю (в устройство идёт круглый штекер, наружу – обычный USB)
  • Имеется переключатель NTSC/PAL
  • Кроме VGA-входа есть и VGA-выход! Можно одновременно подключить монитор и тв-тюнер или телевизор. Падения качества картинки на параллельно воткнутом мониторе не заметил.
  • Судя по описанию (не проверял!) можно отправлять сигнал и в обратном направлении, т.е. TV -> VGA.

Идея выглядела здравой, но… Вот несколько скриншотов из получившегося видео.

СКРИНШОТЫ









Дело в том, что какое-бы не было разрешение на входе – на выходе будет телевизионное. И тут нет артефактов сжатия, нет, это именно выходная картинка. Результат получается тёплым, ламповым и мутноватым. С другой стороны, для 20$ + цена тюнера (на который мне не пришлось тратиться) – результат приемлемый. Но хотелось то большего…

Попытка номер два — полноценная


После попытки с тюнером стало ясно, что дешевыми решениями не отделаться. Порывшись по магазинам, я обнаружил, что единственным доступным вариантом является плата AVerMedia Game Broadcaster HD, уже под PCI-E. Это НЕ последняя модель в линейке, но есть нюанс: она похоже последняя, имеющая VGA-вход для захвата. Более поздние имеют только HDMI и стоят в 2 раза дороже. А нам нужен VGA!



Цена вопроса: 4-5 тыс. рублей.
Для начала – позитив, скриншоты из видео:

СКРИНШОТЫ












Как, надеюсь, видно, результат заметно лучше. Опять же, HDMI-вход, а значит – возможность писать видео с современных консолей или, например, android-устройств. Позитивно. Удобно.

Отдельный приятный момент – в режиме “превью” на компьютере картинка показывается без отставаний, в реальном времени, если конечно мощностей компьютера хватает (об этом – ниже).

А теперь – недостатки, проблемы и клизма дёгтя


  1. Софт. Комплектный софт идёт только под Windows Vista и выше. Хотите вариант под Windows XP? Качайте с сайта производителя. Учитывая, что на CD с драйверами и софтом свободно порядка 70% места (занято в районе 180 МБ) – я не знаю, как это назвать. У меня на том компьютере Windows XP лицензионная, мне обидно.

  2. Захват разрешения ниже 640x480. Официально не поддерживается. При попытке получаем или сообщение об неподдерживаемом разрешении, или мусор вместо сигнала. Но, слава опенсорсу, если воспользоваться программой VirtualDub – можно стабильно записать картинку и в разрешениях ниже 640x480. Выглядеть правда будет как-то так:





    Т.е., картинка реально пишется в 640x480, но с мусором на полях. Впрочем, никто не мешает нам лишнее отрезать, причем на лету (ещё раз спасибо авторам VirtualDub)

  3. Запись видео с Voodoo и Voodoo 2.
    Родная утилита – пишет пару секунд, теряет сигнал, пару секунд показывается надпись “No Signal”, находит сигнал, пишет пару секунд, теряет сигнал… И так по кругу.

    VirtualDub пишет без проблем и возражений. Вот так-то вот. Опять опенсорс на коне. ;)

    В принципе, можно писать и на родном софте картинку с Voodoo. Для этого нужно подключать voodoo к базовой карточке не классическим образом, через отдельный кабель:



    А перетыкать кабель от монитора между обычной картой и Voodoo’вской при запуске/выключении игры под voodoo. Жить так можно, но разве что жизнь?!

  4. Запись звука придётся вести отдельным шнурком, т.е. например, из линейного выхода звуковой карточки первого компьютера в линейный вход компьютера для записи. Ну да это-то нормально. Зато звук по HDMI пишет нормально.

  5. Мощность компьютера для записи и кодирования видео.
    Указанного в начале статьи компьютера хватает, что бы в реальном времени писать и кодировать видео в h264 – но только до разрешения 800x600. Попробовав писать 1280x720 я получил пропуск кадров на финальной записи. А вот в MPEG2 в реальном времени в этом и большем разрешении пишет легко, но качество картинки выходит визуально немного похуже.

  6. Разрешения.
    При подключении по VGA разрешение 800x600 родной утилитой у меня один раз записалось в 720x576, без каких либо объяснений и объявления войны.

    По HDMI картинку с мобильной android-консоли (разрешение экрана 800x480) записало в 720x480 (хана пропорциям).

    С VirtualDub таких неожиданностей не возникает. Короче, хотелось бы родную утилиту в утиль отправить, но нет в мире совершенства. При попытке писать входящий сигнал в 1280x720 (хоть VGA, хоть HDMI) – VirtualDub выводил на экран какую-то лажу вместо изображения, ну и пишет в файл соответственно тоже бред. Зато если на вход подать 1280x720, а VirtualDub сказать, что на входе на самом деле 1920x1080 – будет писать как миленький, но растянув разрешение до 1920x1080. Родная утилита пишет всё как надо.

Выводы делайте сами. Если знаете лучший способ писать видео по VGA – добро пожаловать в комментарии!

P.S. Видео-примеры не выкладываю по следующей причине: если бы я выложил его на ютуб на свой канал, то топик пришлось бы перенести в раздел “я пиарюсь”. Если есть интерес – пишите в личку, дам ссылки на видео того и другого варианта.

Спасибо за внимание! Для самых терпеливых читателей – бонусная кошка, как и обещал. :)



Update от 18.02.2015


  • Родной софт под Vista и выше заметно лучше XP'шного, глюков практически нет
  • Звук по HDMI таки пишет, был не прав
  • Если при подачи картинки с разрешением ниже 640x480 плата сообщит, что мол сигнал выше за границы допустимого — то на той же машине запускаем нечто в 640x480, даёт плате обнаружить привычный сигнал, а потом уже переходим в более низкое разрешение — плата продолжит захватывать картинку и работать как надо. Сработает и с родной софтиной.

Update от 02.03.2016


Свежая версия софта работает лучше, но там тоже нашлась проблема: при попытке записать видео в 640x480 получаю искажение пропорций. Если выбрать в настройках разрешение «800x600» при источнике сигнала в 640x480 — будет писать 640x480 без искажений.
Теги:
Хабы:
+60
Комментарии50

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн