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

2 June 2017

Записать видео с 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.

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

Интересные моменты этой железяки:

- Питается по USB-кабелю (в устройство идёт круглый штекер, наружу – обычный USB)

- Имеется переключатель NTSC/PAL

- Кроме VGA-входа есть и VGA-выход! Можно одновременно подключить монитор и тв-тюнер или телевизор. Падения качества картинки на параллельно воткнутом мониторе не заметил.

- Судя по описанию (не проверял!) можно отправлять сигнал и в обратном направлении, т.е. TV -> VGA.

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

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

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

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

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

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

Цена вопроса: 4-5 тыс. рублей.

Для начала – позитив, скриншоты из видео.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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