Сделай сам: Project удалить VGA кабель, разделяя экран через Wi-Fi на ТВ - PullRequest
1 голос
/ 27 января 2012

Это один из моих проектов кодирования. Я довольно новичок в Linux, поэтому мне нужно несколько советов и мыслей от вас, ребята, прежде чем я начну. Я знаю, что программное обеспечение для обмена экранами уже существует, но я хочу сделать свое собственное! (= * * Тысяча одна

В частности, я хочу клонировать экран моего ноутбука на телевизор через WLAN через коробку linux, подключенную к телевизору через кабель VGA:

  1. ноутбук транслирует экран
  2. Linux box читает поток
  3. Linux box выводит поток на телевизор (через кабель VGA)

Прежде всего, как мне записать экран и отправить поток в режиме реального времени в Linux?

Во-вторых, я должен написать программу, которая читает отправляемый поток. Программа должна прослушивать какой-то порт и собирать данные, передаваемые с ноутбука. Есть мысли?

Тогда я должен вывести эти данные в режиме реального времени на телевизор. У тебя как нибудь есть идеи как это решить?

Спасибо!

Редактировать: Что касается языков программирования, мне больше всего нравится Python.

Ответы [ 2 ]

3 голосов
/ 27 января 2012

Совместное использование экрана может быть выполнено с помощью различных вариантов VNC (т. Е. RealVNC , TightVNC , UltraVNC и т. Д.). Большинство из из них являются открытыми, вы можете:

  1. придерживаться протокола VNC для более поздней совместимости
  2. Взять примеркак устоявшиеся решения делают для перехвата экрана.

В Linux вся графика обрабатывается Xorg (новая версия X Server), которая была разработана со встроенными сетевыми технологиями.Это объясняет, почему вы можете подключить ssh -X к компьютеру, запустить графический интерфейс на нем и увидеть его на своем удаленном компьютере.Я рекомендую вам прочитать о хуках на Xorg для достижения ваших потребностей.

Для достижения ваших потребностей вам нужна топология клиент-сервер.Вы говорите не о каком-либо языке программирования, который вы планируете использовать.Для некоторых языков может быть сложнее, чем для некоторых.Кроме того, этот вид кода уже очень хорошо понят под каждым основным языком программирования.Вы должны хотя бы попытаться использовать среду, которая упрощает вашу сетевую часть проекта.

Совместное использование экрана на телевизоре может быть выполнено драйвером вашей видеокарты в Linux.Просто проверьте вашу среду рабочего стола (например, KDE и Gnome предлагают панели конфигурации видео) или конфигурацию вашей видеокарты (драйверы nVidia и ATI Linux предлагают поддержку нескольких экранов)

Мне кажется, что вы пытаетесьизобретать велосипед и не слишком уверен в том, как начать.Я рекомендую вам начать с простого уже проверенного программного обеспечения VNC и посмотреть, как оно будет развиваться.Если функция отсутствует, у вас есть исходный код сервера и клиента, поэтому вы можете продолжить разработку этих проектов.После того, как вы настроили свою настройку, начните думать о замене одного фрагмента головоломки вашим собственным кодом и посмотрите, как он работает.

Не ожидайте хорошего (например, Full HD) качества видео наВаш телевизор без какого-либо очень мощного процессора / графического процессора и беспроводной сети 802.11n, в которой нет пользователей, и будьте готовы смириться с некоторой задержкой при запуске кодеков.

2 голосов
/ 27 января 2012

Вы должны попытаться сделать как можно меньше шагов.Если бы я занимался таким проектом, моим первым шагом было бы попытаться реализовать решение, используя стандартные инструменты Unix (например, netcat или socat для сетевой части, mplayer или vlc для воспроизведения и, возможноffmpeg за захват)?Затем, при необходимости, замените каждый компонент на пользовательский.

...