![](https://habrastorage.org/getpro/habr/post_images/297/a12/873/297a12873e0511db11da36fdfa22c7c8.jpg)
Зачем
У вас конечно могут быть иные цели, у меня же появилась следующая потребность: записывать со старых компьютеров видео, которое выводится на монитор. При этом:
- Компьютеры старые и слабые, водрузить на них некий “аналог fraps’а” не представляется возможным. Да и какой софт для записи вы поставите на машинку, где и Win 3.1 пойдёт со скрипом? Да для первого пентиума или для DOS-режима вы тоже вряд ли что найдёте.
- Вариант “воткни видеокарту с ТВ-выходом” тоже не вариант. А если я хочу записать картинку с первой Voodoo или какой-то ещё бОльшей экзотики? И опять же, упираемся в софт. Нужна же универсальность.
- Вариант “запуска на эмуляторе” – не подходит. Игры “позднего DOS’а” умудряются тормозить или идти не плавно даже на современном i7, если эмулировать их DosBox’ом. Если же нам понадобится запустить игру, которая даже на WinXP глючит, и нормально работает на ОС не старше Win98 или Win95, но при этом требует трёхмерного ускорения – тут эмуляторы не шибко помогут, ускорение игровой графики там печальное.
- Снимать экран камерой? Нет, существуют любители “экранок”, но этот способ попахивает извращением и “последним шансом”.
Железо для захвата
В качестве машинки для захвата видео был использован такой вот компьютер:
Процессор: 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:
![](https://habrastorage.org/getpro/habr/post_images/321/86a/68a/32186a68a1e87c92c01fd7615fa90834.jpg)
Ещё фото.![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/bad/886/51c/bad88651cd5988978f2fd23d68dc7c5c.jpg)
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/72c/c9f/1ce/72cc9f1ce74931edc451472dd23d807c.jpg)
![](https://habrastorage.org/getpro/habr/post_images/bad/886/51c/bad88651cd5988978f2fd23d68dc7c5c.jpg)
![](https://habrastorage.org/getpro/habr/post_images/72c/c9f/1ce/72cc9f1ce74931edc451472dd23d807c.jpg)
Интересные моменты этой железяки:
- Питается по USB-кабелю (в устройство идёт круглый штекер, наружу – обычный USB)
- Имеется переключатель NTSC/PAL
- Кроме VGA-входа есть и VGA-выход! Можно одновременно подключить монитор и тв-тюнер или телевизор. Падения качества картинки на параллельно воткнутом мониторе не заметил.
- Судя по описанию (не проверял!) можно отправлять сигнал и в обратном направлении, т.е. TV -> VGA.
Идея выглядела здравой, но… Вот несколько скриншотов из получившегося видео.
СКРИНШОТЫ![](https://habrastorage.org/r/w1560/getpro/habr/post_images/3da/ee5/bc2/3daee5bc2f330b4ac7c7423fa04f4fc3.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/665/316/ec1/665316ec1e30ad0ae6f64eb150712f64.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/154/f83/df4/154f83df444ab479d83cb38cc67e8062.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/4ba/eee/e2b/4baeeee2b55167b977af357f69f232dc.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/a6a/a0a/cb5/a6aa0acb5dae99c8a070c0bf802a828d.png)
![](https://habrastorage.org/getpro/habr/post_images/3da/ee5/bc2/3daee5bc2f330b4ac7c7423fa04f4fc3.png)
![](https://habrastorage.org/getpro/habr/post_images/665/316/ec1/665316ec1e30ad0ae6f64eb150712f64.png)
![](https://habrastorage.org/getpro/habr/post_images/154/f83/df4/154f83df444ab479d83cb38cc67e8062.png)
![](https://habrastorage.org/getpro/habr/post_images/4ba/eee/e2b/4baeeee2b55167b977af357f69f232dc.png)
![](https://habrastorage.org/getpro/habr/post_images/a6a/a0a/cb5/a6aa0acb5dae99c8a070c0bf802a828d.png)
Дело в том, что какое-бы не было разрешение на входе – на выходе будет телевизионное. И тут нет артефактов сжатия, нет, это именно выходная картинка. Результат получается тёплым, ламповым и мутноватым. С другой стороны, для 20$ + цена тюнера (на который мне не пришлось тратиться) – результат приемлемый. Но хотелось то большего…
Попытка номер два — полноценная
После попытки с тюнером стало ясно, что дешевыми решениями не отделаться. Порывшись по магазинам, я обнаружил, что единственным доступным вариантом является плата AVerMedia Game Broadcaster HD, уже под PCI-E. Это НЕ последняя модель в линейке, но есть нюанс: она похоже последняя, имеющая VGA-вход для захвата. Более поздние имеют только HDMI и стоят в 2 раза дороже. А нам нужен VGA!
![](https://habrastorage.org/getpro/habr/post_images/ee1/a90/0f3/ee1a900f32e6c6b44658c375dc3fea23.jpg)
Цена вопроса: 4-5 тыс. рублей.
Для начала – позитив, скриншоты из видео:
СКРИНШОТЫ![](https://habrastorage.org/r/w1560/getpro/habr/post_images/c0f/cdc/0c8/c0fcdc0c8633055391aa661d59778a8a.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/94c/83b/fab/94c83bfabb8ef600690e4045a8f8f2fd.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/e48/722/c2d/e48722c2d7bd6c8bfaed541014b394e5.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/c59/79a/6b8/c5979a6b817c1b335856478d004e6983.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/f8b/291/6e4/f8b2916e46ebb203b0c37555d9910191.png)
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/135/e41/dbe/135e41dbe3cb4892fc416c670bc712d3.png)
![](https://habrastorage.org/getpro/habr/post_images/c0f/cdc/0c8/c0fcdc0c8633055391aa661d59778a8a.png)
![](https://habrastorage.org/getpro/habr/post_images/94c/83b/fab/94c83bfabb8ef600690e4045a8f8f2fd.png)
![](https://habrastorage.org/getpro/habr/post_images/e48/722/c2d/e48722c2d7bd6c8bfaed541014b394e5.png)
![](https://habrastorage.org/getpro/habr/post_images/c59/79a/6b8/c5979a6b817c1b335856478d004e6983.png)
![](https://habrastorage.org/getpro/habr/post_images/f8b/291/6e4/f8b2916e46ebb203b0c37555d9910191.png)
![](https://habrastorage.org/getpro/habr/post_images/135/e41/dbe/135e41dbe3cb4892fc416c670bc712d3.png)
Как, надеюсь, видно, результат заметно лучше. Опять же, HDMI-вход, а значит – возможность писать видео с современных консолей или, например, android-устройств. Позитивно. Удобно.
Отдельный приятный момент – в режиме “превью” на компьютере картинка показывается без отставаний, в реальном времени, если конечно мощностей компьютера хватает (об этом – ниже).
А теперь – недостатки, проблемы и клизма дёгтя
- Софт. Комплектный софт идёт только под Windows Vista и выше. Хотите вариант под Windows XP? Качайте с сайта производителя. Учитывая, что на CD с драйверами и софтом свободно порядка 70% места (занято в районе 180 МБ) – я не знаю, как это назвать. У меня на том компьютере Windows XP лицензионная, мне обидно.
- Захват разрешения ниже 640x480. Официально не поддерживается. При попытке получаем или сообщение об неподдерживаемом разрешении, или мусор вместо сигнала. Но, слава опенсорсу, если воспользоваться программой VirtualDub – можно стабильно записать картинку и в разрешениях ниже 640x480. Выглядеть правда будет как-то так:
Т.е., картинка реально пишется в 640x480, но с мусором на полях. Впрочем, никто не мешает нам лишнее отрезать, причем на лету (ещё раз спасибо авторам VirtualDub)
- Запись видео с Voodoo и Voodoo 2.
Родная утилита – пишет пару секунд, теряет сигнал, пару секунд показывается надпись “No Signal”, находит сигнал, пишет пару секунд, теряет сигнал… И так по кругу.
VirtualDub пишет без проблем и возражений. Вот так-то вот. Опять опенсорс на коне. ;)
В принципе, можно писать и на родном софте картинку с Voodoo. Для этого нужно подключать voodoo к базовой карточке не классическим образом, через отдельный кабель:
А перетыкать кабель от монитора между обычной картой и Voodoo’вской при запуске/выключении игры под voodoo. Жить так можно, но разве что жизнь?!
- Запись звука придётся вести отдельным шнурком, т.е. например, из линейного выхода звуковой карточки первого компьютера в линейный вход компьютера для записи. Ну да это-то нормально. Зато звук по HDMI пишет нормально.
- Мощность компьютера для записи и кодирования видео.
Указанного в начале статьи компьютера хватает, что бы в реальном времени писать и кодировать видео в h264 – но только до разрешения 800x600. Попробовав писать 1280x720 я получил пропуск кадров на финальной записи. А вот в MPEG2 в реальном времени в этом и большем разрешении пишет легко, но качество картинки выходит визуально немного похуже.
- Разрешения.
При подключении по VGA разрешение 800x600 родной утилитой у меня один раз записалось в 720x576, без каких либо объяснений и объявления войны.
По HDMI картинку с мобильной android-консоли (разрешение экрана 800x480) записало в 720x480 (хана пропорциям).
С VirtualDub таких неожиданностей не возникает. Короче, хотелось бы родную утилиту в утиль отправить, но нет в мире совершенства. При попытке писать входящий сигнал в 1280x720 (хоть VGA, хоть HDMI) – VirtualDub выводил на экран какую-то лажу вместо изображения, ну и пишет в файл соответственно тоже бред. Зато если на вход подать 1280x720, а VirtualDub сказать, что на входе на самом деле 1920x1080 – будет писать как миленький, но растянув разрешение до 1920x1080. Родная утилита пишет всё как надо.
Выводы делайте сами. Если знаете лучший способ писать видео по VGA – добро пожаловать в комментарии!
P.S. Видео-примеры не выкладываю по следующей причине: если бы я выложил его на ютуб на свой канал, то топик пришлось бы перенести в раздел “я пиарюсь”. Если есть интерес – пишите в личку, дам ссылки на видео того и другого варианта.
Спасибо за внимание! Для самых терпеливых читателей – бонусная кошка, как и обещал. :)
![](https://habrastorage.org/getpro/habr/post_images/4e2/11b/c28/4e211bc28c8459d3a75884aaf8af6c8c.png)
Update от 18.02.2015
- Родной софт под Vista и выше заметно лучше XP'шного, глюков практически нет
- Звук по HDMI таки пишет, был не прав
- Если при подачи картинки с разрешением ниже 640x480 плата сообщит, что мол сигнал выше за границы допустимого — то на той же машине запускаем нечто в 640x480, даёт плате обнаружить привычный сигнал, а потом уже переходим в более низкое разрешение — плата продолжит захватывать картинку и работать как надо. Сработает и с родной софтиной.
Update от 02.03.2016
Свежая версия софта работает лучше, но там тоже нашлась проблема: при попытке записать видео в 640x480 получаю искажение пропорций. Если выбрать в настройках разрешение «800x600» при источнике сигнала в 640x480 — будет писать 640x480 без искажений.