2012-01-27 19 views
1

這是我的一個編碼項目。我對Linux非常陌生,所以在我開始之前,我需要一些指點和想法。我知道已經存在屏幕共享軟件,但我想製作我自己的! (=DIY:項目通過無線共享屏幕將電視線移除到電視

具體來說,我想克隆我的筆記本電腦屏幕到電視上通過WLAN,經由通過VGA線連接到電視一臺Linux機器:

  1. 筆記本溪流它的屏幕
  2. 的Linux箱(通過VGA線纜)讀取
  3. Linux機器輸出流進電視流

首先,我該如何記錄屏幕,並實時在linux下發流?

其次我必須編寫一個程序來讀取正在發送的流。該程序必須偵聽某個端口,並收集筆記本電腦上傳輸的數據。有什麼想法嗎?

然後我必須將這些數據實時輸出到電視機。你如何解決這個問題有什麼想法?

謝謝!

編輯:關於編程語言,我最喜歡python。

回答

3

可以通過VNC(即RealVNC,TightVNCUltraVNC等)的各種風格來共享您的屏幕。的themMost都是開源的,你可能想:

  1. 堅持使用VNC協議後兼容性
  2. 以實例的建立解決方案如何確實爲屏幕掛鉤。

在Linux中,圖形全部由Xorg(新版本的X Server)進行處理,這是使用網絡嵌入式開發的。這就解釋了爲什麼你可以將ssh -X裝入機器​​,在其上執行圖形界面並在遠程計算機上看到它。我建議你閱讀關於Xorg的鉤子來實現你的需求。

您需要一個客戶端 - 服務器拓撲來實現您的需求。不過,你並不是在談論你預計使用的任何編程語言。一些語言可能比一些語言更難開始。而且,這種代碼在每種主流編程語言下都已經非常瞭解。您應該儘量至少使用一個簡化項目網絡部分的框架。

在電視上共享屏幕可以通過Linux中的視頻卡驅動程序完成。只需檢查您的桌面環境(例如KDE和Gnome提供的視頻配置面板)或在您的視頻卡配置(nVidia和ATI Linux驅動程序提供多屏幕支持)

在我看來,你似乎想要重塑車輪並不太確定如何開始。我建議你從一個已經被證實的VNC軟件開始簡單地看看它是如何從那裏開始的。如果某個功能缺失,您已獲得服務器和客戶端的源代碼,因此您可以繼續開發這些項目。一旦你的設置正常運行,開始考慮用自己的代碼替換一塊拼圖,並看看它是如何發生的。

如果沒有一些功能非常強大的CPU/GPU和802.11n無線網絡,用戶無法期望電視機具有良好的視頻質量(例如全高清),並準備接受編解碼器的一些滯後時間。

2

你應該儘量採取儘可能小的步驟。如果我正在開展這樣一個項目,我的第一步就是嘗試使用標準的unix工具來實現解決方案(例如,用於網絡部分的netcatsocat,用於回放的mplayervlc以及可能用於捕獲的ffmpeg)?然後,如果需要,用自定義寫入的組件替換每個組件。