История изменений
Исправление liksys, (текущая версия) :
Все сложно. В природе не существует никаких дешевых способов видеозахвата. Но можно включить хитрость - есть китайские конвертеры с VGA на композит, и устройства захвата композита. Оба девайса стоят полкопейки, так что ободрав с них корпус и собрав несложную схемку, можно получить приемлемое изображение для 640x480 - с аналоговыми помехами, но достаточное, чтобы поконфигурировать биос и переустановить систему через консоль.
С HDMI все сложнее. Есть тошибовый чипик, который умеет переупаковывать HDMI в CSI-2, и можно прикинуться чем-то вроде паевой камеры. Качество изображения близко к идеальному, поддерживаются разные разрешения - в зависимости от того, какой ты скормишь чипику EDID.
Видео можно кодировать и передавать в MJPG, это идеальный для этих целей формат: никаких задержек, каждый кадр - законченное изображение. Так делают многие веб-камеры, и они аппаратно умеют кодировать поток в жопеги, которые выдаются в /dev/video. Но ни одно из упомянутых выше устройств видеозахвата не умеет аппаратное кодирование, а выдает непожатый поток пикселей.
Я пробовал стримить через mjpg-streamer захват VGA и получил в лучшем случае 4 фпс на пае - полное говно, как ты понимаешь. HDMI он вообще не умел, я его запатчил и он худо-бедно начал это делать, но больше 800x600 выдать не смог. Плюс у HDMI если сложности в виде динамической смены разрешения источника, отключения кабеля и прочего. Поэтому я написал свой стример, который умеет кодировать жопеги параллельно на разных ядрах, а если платформа поддерживает (как пай) - то и на GPU. Получилась минимальная задержка с максимальным фпс.
Тема использовать китайский видеозахват появилась давно, но я был один из первых, кто это придумал, у меня даже пруфы есть в виде вытравленных несколько лет назад плат и поста на реддите))). Сейчас есть вот такой проект, но он написан на баше + PHP и собран на коленке: https://github.com/Fmstrat/diy-ipmi. Схема в случае VGA почти та же, что и у меня, только я вместо второго пая использую ардуину со специальной прошивкой, или любой другой HID-контроллер, с которым общаюсь по сериалу. Фпс там на днище, и какими-то особыми фичами и не пахнет.
То, что мы делаем - уже практически продакшн-решение для треш-датацентров из десктопных материнок. Двумя командами билдится ось, прошивается на флешку. Сделаем плату - к ней будет просто прицепляться пай, и все работать из коробки.
Алсо, еще одно мое ноу-хау - сборка осей в докере: https://github.com/pi-kvm/pi-builder. Тоже придумал специально для этого.
Исправление liksys, :
Все сложно. В природе не существует никаких дешевых способов видеозахвата. Но можно включить хитрость - есть китайские конвертеры с VGA на композит, и устройства захвата композита. Оба девайса стоят полкопейки, так что ободрав с них корпус и собрав несложную схемку, можно получить приемлемое изображение для 640x480 - с аналоговыми помехами, но достаточное, чтобы поконфигурировать биос и переустановить систему через консоль.
С HDMI все сложнее. Есть тошибовый чипик, который умеет переупаковывать HDMI в CSI-2, и можно прикинуться чем-то вроде паевой камеры. Качество изображения близко к идеальному, поддерживаются разные разрешения - в зависимости от того, какой ты скормишь чипику EDID.
Видео можно кодировать и передавать в MJPG, это идеальный для этих целей формат: никаких задержек, каждый кадр - законченное изображение. Так делают многие веб-камеры, и они аппаратно умеют кодировать поток в жопеги, которые выдаются в /dev/video. Но ни одно из упомянутых выше устройств видеозахвата не умеет аппаратное кодирование, а выдает непожатый поток пикселей.
Я пробовал стримить через mjpg-streamer захват VGA и получил в лучшем случае 4 фпс на пае - полное говно, как ты понимаешь. HDMI он вообще не умел, я его запатчил и он худо-бедно начал это делать, но больше 800x600 выдать не смог. Плюс у HDMI если сложности в виде динамической смены разрешения источника, отключения кабеля и прочего. Поэтому я написал свой стример, который умеет кодировать жопеги параллельно на разных ядрах, а если платформа поддерживает (как пай) - то и на GPU. Получилась минимальная задержка с максимальным фпс.
Тема использовать китайский видеозахват появилась давно, но я был один из первых, кто это придумал, у меня даже пруфы есть в виде вытравленных несколько лет назад плат и поста на реддите))). Сейчас есть вот такой проект, но он написан на баше + PHP и собран на коленке: https://github.com/Fmstrat/diy-ipmi. Схема в случае VGA почти та же, что и у меня, только я вместо второго пая использую ардуину со специальной прошивкой, или любой другой HID-контроллер, с которым общаюсь по сериалу. Фпс там на днище, как ты понимаешь, какими-то особыми фичами и не пахнет.
То, что мы делаем - уже практически продакшн-решение для треш-датацентров из десктопных материнок. Двумя командами билдится ось, прошивается на флешку. Сделаем плату - к ней будет просто прицепляться пай, и все работать из коробки.
Алсо, еще одно мое ноу-хау - сборка осей в докере: https://github.com/pi-kvm/pi-builder. Тоже придумал специально для этого.
Исходная версия liksys, :
Все сложно. В природе не существует никаких дешевых способов видеозахвата. Но можно включить хитрость - есть китайские конвертеры с vga на композит, и устройства захвата композита. Оба девайса стоят полкопейки, так что ободрав с них корпус и собрав несложную схемку, можно получить приемлемое изображение для 640x480 - с аналоговыми помехами, но достаточное, чтобы поконфигурировать биос и переустановить систему через консоль.
С HDMI все сложнее. Есть тошибовый чипик, который умеет переупаковывать HDMI и CSI-2, и можно прикинуться чем-то вроде паевой камеры. Качество изображения близко к идеальному, поддерживаются разные разрешения - в зависимости от того, какой ты скормишь чипику EDID.
Видео можно кодировать и передавать в MJPG, это идеальный для этих целей формат: никаких задержек, каждый кадр - законченное изображение. Так делают многие веб-камеры, и они аппаратно умеют кодировать поток в жопеги, которые выдаются в /dev/video. Но ни одно из упомянутых выше устройств видеозахвата не умеет аппаратное кодирование, а выдает непожатый поток пикселей.
Я пробовал стримить через mjpg-streamer захват VGA и получил в лучшем случае 4 фпс на пае - полное говно, как ты понимаешь. HDMI он вообще не умел, я его запатчил и он худо-бедно начал это делать, но больше 800x600 выдать не смог. Плюс у HDMI если сложности в виде динамической смены разрешения источника, отключения кабеля и прочего. Поэтому я написал свой стример, который умеет кодировать жопеги параллельно на разных ядрах, а если платформа поддерживает (как пай) - то и на GPU. Получилась минимальная задержка с максимальным фпс.
Тема использовать китайский видеозахват появилась давно, но я был один из первых, кто это придумал, у меня даже пруфы есть в виде вытравленных несколько лет назад плат и поста на реддите))). Сейчас есть вот такой проект, но он написан на баше + PHP и собран на коленке: https://github.com/Fmstrat/diy-ipmi. Схема в случае VGA почти та же, что и у меня, только я вместо второго пая использую ардуину со специальной прошивкой, или любой другой HID-контроллер, с которым общаюсь по сериалу. Фпс там на днище, как ты понимаешь, какими-то особыми фичами и не пахнет.
То, что мы делаем - уже практически продакшн-решение для треш-датацентров из десктопных материнок. Двумя командами билдится ось, прошивается на флешку. Сделаем плату - к ней будет просто прицепляться пай, и все работать из коробки.
Алсо, еще одно мое ноу-хау - сборка осей в докере: https://github.com/pi-kvm/pi-builder. Тоже придумал специально для этого.