MythTV/附加功能
| MythTV 介紹 | 入門 | 安裝 | 附加功能 | 故障排除 | 結論 |
一旦 MythTV 基本上執行起來(例如:您可以暫停、錄製和播放電視),您就可以開始調整系統以完全按照您的意願執行。可能性無窮無盡,但您可能需要調整一些事情。
要使您的遙控器工作,必須載入 LIRC。因此,在您的一個引導指令碼中,您應該擁有
/sbin/modprobe lirc_i2c
這將載入 lirc_i2c 核心模組。此後,您可以使用 "/home/mythtv/.lircrc" 檔案(實際上是 "/home/mythtv/.mythtv/lircrc" 的符號連結)配置您的遙控器。在這個檔案中,您會發現一堆類似於
begin prog = mythtv button = Power config = Esc end
這些語句應該不言自明。"prog = mythtv" 告訴 LIRC 此命令應繫結到 MythTV 應用程式。"button = Power" 告訴 LIRC 當按下遙控器上的 "Power" 按鈕時,應該發出此命令。"config = Esc" 告訴 LIRC 嚮應用程式傳遞什麼命令。因此,當我按下 "Power" 時,MythTV 將收到 "Esc" 訊號(一個方便的對映,因為這樣您就可以使用電源按鈕退出 MythTV)。您可以根據自己的喜好設定這些對映。要找出特定遙控器允許的名稱,請參閱 LIRC 提供的文件(在您解壓縮 LIRC 原始碼時建立)。例如
$ cd /home/mythtv/lirc-0.7.1/remotes/hauppauge/ $ emacs lircd.conf.hauppauge
顯然,您應該導航到適合您遙控器的文件。最後,您的 lircrc 檔案應該包含一堆 begin/end 語句(每個按鈕一個),這些語句以您喜歡的方式繫結到 MythTV 函式。如果您的 MythTV 安裝順利,可能已經載入了一些智慧預設設定。
為了充分利用特殊按鈕,您可以設定按鍵繫結。在 MythWeb 的設定模式中,您可以設定額外的按鍵繫結(例如,使用 F2 直接啟動 MythWeather)。然後在 LIRC 中,您可以將遙控器上的一個按鈕設定為同一個按鍵。
在使用 MythVideo 和 MythDVD 時,mplayer 被呼叫來顯示影片。如果您希望遙控器與 mplayer 配合使用,則可以為 mplayer 設定額外的繫結。繫結可能看起來像
begin prog = mplayer button = Vol+ config = volume +1 repeat = 2 end begin prog = mplayer button = Vol- config = volume -1 repeat = 2 end
程式現在是 "mplayer"。允許的鍵與以前相同(查詢您遙控器的文件)。允許的 "config =" 行基於 mplayer 知道的命令。鍵入 "mplayer -input cmdlist" 以檢視允許的命令列表,然後繫結您想要的命令。請注意,"repeat = 2" 命令控制按鈕按住時會發生什麼。也就是說,更改此數字將控制按住按鈕時按鈕重複的速度(數字越小,重複速度越快,數字越大,重複速度越慢)。您可以根據自己的喜好調整這些設定。您還可以找到示例其他人設定的線上設定,以獲得靈感。
LIRC Config 是一個免費工具,可以線上建立自定義 lircrc。
如果您有一個希望能夠從 MythTV 內控制的機頂盒,那麼您有多種選擇。許多型別的紅外發射器(無論是購買的還是自制的)都可以使用前面描述的LIRC 程式進行控制。
如果您使用的是My.Tv 的MyBlaster 產品,那麼您需要執行以下操作。首先,請注意 My.TV 僅保證其產品的序列版本與 linux 相容。您可以檢視他們的說明 或訪問論壇 以尋求幫助。另一位 MythTV 使用者編寫了一個 Perl 模組,使我們能夠輕鬆地與 MyBlaster 產品進行互動。因此,您首先應該從某個地方下載MyBlaster14.zip 檔案。在 zip 檔案中,您會找到各種裝置(電視、衛星盒等)的文件。找到您的裝置型別和品牌,您將看到許多可能適用於您的裝置的程式碼。所以接下來,讓我們測試一下哪個程式碼有效。讓我們將 MyBlaster.pl perl 指令碼放入 "/usr/local/bin"(作為 root)
# cp MyBlaster.pl /usr/local/bin
現在,在您喜歡的文字編輯器中編輯此檔案。將 "$Device_Type=" 更改為您的裝置型別。現在,將 "$remote_code=" 更改為您的品牌建議的程式碼之一。儲存檔案並退出。現在開啟您的機頂盒(或電視,或任何其他裝置),將您的紅外發射器產品對準機頂盒,然後鍵入
# MyBlaster.pl power
這將告訴產品傳送 "電源開/關" 訊號。如果您的機頂盒關閉,那麼很明顯,程式碼適用於您的型號。如果什麼也沒有發生,請再次編輯指令碼,並嘗試不同的程式碼。最終,您會找到適用於您產品的程式碼。然後,在 mythtvsetup 中,您可以將 "外部頻道切換命令" 選項更改為 "/usr/local/bin/MyBlaster.pl"。現在,每次 MythTV 想要更改頻道(對於該影片源)時,它將呼叫 MyBlaster.pl,並將頻道號作為引數傳遞。您可以重新啟動您的 lirc 模組並在 MythTV 中嘗試。當您更改頻道時,您應該確實看到您的機頂盒更改頻道(請記住將您的紅外發射器對準裝置!)。Mythblasterz 提供了一個更便宜的替代方案。
實際上,您可以使用整個設定來控制多個裝置,例如您的機頂盒和電視(以及錄影機等)。您所需要的只是一些想象力和修改正確指令碼的時間。需要注意的一個有用選項是在 ".lircrc" 檔案中設定 "prog = irexec"。這是一個簡單的例子:假設我們修改 "/home/mythtv/.lircrc" 檔案以包含
begin prog = irexec button = Power config = echo "Hello world!" end
如果您儲存這些更改,然後從命令列執行 "irexec",您應該看到 "Hello world!" 每次您按下遙控器上的 "power" 按鈕時,都會輸出到提示符。irexec 程式允許我們使用遙控器上的任何鍵執行任意 shell 命令。唯一的缺點是 irexec 程式必須正在執行。您可以輕鬆地安排這種情況,例如,將 "/usr/local/bin/irexec &" 新增到您的 "/usr/local/bin/start-ivtv" 指令碼中(尾部的 & 告訴命令被置於後臺)。
現在我們可以更聰明一點。假設我們的遙控器按鈕主要繫結到 MythTV,並且我們使用 "MyBlaster.pl" 程式來控制我們的機頂盒。現在假設我們還希望遙控器上的 "power" 按鈕開啟和關閉電視(但不要關閉機頂盒!)。以下是我們可以採取的措施。首先,讓我們複製 MyBlaster.pl
# cd /usr/local/bin # cp MyBlaster.pl MyBlasterTV.pl
現在在 MyBlaster 文件中找到您的電視的裝置程式碼(與之前一樣,透過修改檔案並嘗試 "MyBlasterTV.pl power" 直到電視關閉來確定哪個程式碼是正確的程式碼)。一旦您的 MyBlasterTV.pl 檔案控制了電視,您可以編輯您的 .lircrc 檔案並新增
begin prog = irexec button = Power config = MyBlasterTV.pl power end
當您按下遙控器上的電源按鈕時,LIRC 守護程式 (lircd) 將命令傳遞給 "irexec",它只執行 "MyBlasterTV.pl power",這應該向您的紅外發射器傳送一個訊號,使您的電視關閉。顯然,您可以將遙控器上的按鈕對映到各種不同的指令碼。透過這種方式,您可以控制各種各樣的 AV 裝置。
MythTV 的新使用者通常對它切換頻道時的緩慢速度感到非常惱火,尤其是在使用機頂盒的情況下。MythTV 不斷緩衝直播電視。這使您可以隨意暫停和倒帶。但是,這也意味著您始終落後於直播電視 4-5 秒。因此,如果您想切換頻道,在新的頻道緩衝開始時總是會有延遲。如果您使用紅外發射器控制機頂盒,那麼由於紅外發射器還會造成額外的延遲。有什麼辦法可以解決嗎?
您可以對機頂盒的頻道切換進行(輕微)最佳化。如果您使用 MyBlaster 指令碼,可以對其進行最佳化。首先,在 "/usr/local/bin/MyBlaster.pl" 檔案中,您可以透過設定 "$finalize=1;" 來啟用 finalize 選項,這將使發射器傳送一個按鍵來立即確認頻道切換。對於大多數遙控器來說,有一個 “選擇” 或 “確定” 按鈕可以做到這一點,因此請在 "$finalize_key=" 部分中進行設定。您也可以嘗試編輯 "Emit_Time=0.333;" 選項。這是每次按鍵紅外訊號持續的時間。透過減少它,按鍵輸入將更快。但是,不要減少太多,否則按鍵會丟失。您可以調整這個值並檢視發生了什麼。現代機頂盒似乎能夠在沒有太多問題的情況下處理 "Emit_Time=0.2;"。 "$inter_key_delay=1;" 選項也可以更改。這是按鍵脈衝之間的時間。像往常一樣,設定太低,您的盒子會變得困惑。預設的 1 秒是安全的,但許多盒子可以處理 0.2 秒而沒有問題。這些選項可以使頻道切換更快。
但是,最終您將無法消除最後的 4 秒緩衝延遲。這為您留下了兩種選擇。首先,您可以將電視設定為將機頂盒的直播訊號直接傳送到電視,並將另一個訊號傳送到您的 MythTV。然後,您可以透過更改電視上的輸入選擇在 “直播模式” 和 “Myth 模式” 之間切換。然而,這需要一些使用者的智慧,因為您可能在 MythTV 嘗試錄製時切換頻道,從而破壞該錄製。
另一個選擇是適應!大多數 MythTV 使用者發現,一段時間後,他們放棄了整個 “頻道衝浪” 的習慣,因為它主要是一種在任何特定時間都無法找到有趣的電視節目或對廣告感到厭煩的遺物。有了 MythTV,您希望只觀看自己喜歡的已錄製節目,並且會在合適的時間觀看。當您坐下來看電視時,您只需檢視最近錄製節目的列表,然後觀看您感興趣的東西。不僅如此,您還可以使用自動跳過廣告功能來避免無聊。嘗試一下這種新正規化,您可能會發現強迫性地切換頻道的需求會消失。
如果您的 MythTV 安裝順利,那麼 MythWeb 可能已經在完美執行。在您的 MythTV 盒子上,開啟網頁瀏覽器並訪問 "https:///mythweb/"(或 "http://127.0.0.1/mythweb/")。不要忘記尾部的斜槓,否則您只會得到 “頁面未找到” 錯誤!如果您能看到您的 MythWeb,那麼一切正常。請參閱下一節以獲取有關使其在網際網路上全球可訪問的資訊。如果您無法看到您的 MythWeb,那麼您可能應該檢視執行您的 MythWeb 的 Web 伺服器 Apache 的 選項(請注意,Apache 程序/服務根據您的版本稱為 httpd 或 httpd2)。要修改 MythWeb 的行為,您需要修改以下檔案
- /var/www/html/mythweb/.htaccess
- /var/www/html/mythweb/config/conf.php
這些文件還建議您將選項 “UseCanonicalName on” 新增到您的 Apache 配置檔案,該檔案位於:"/etc/httpd/conf/httpd2.conf"。但是,在現代版本的 Apache 中,預設值為 “on”,因此新增此指令通常沒有必要。
如果您在本地網路之外遇到無法檢視 MythWeb 頁面,那麼可能是您的 ISP 阻止了預設的 http 埠 (80)。您可以透過在另一個埠上執行 MythWeb 來解決此問題(任何大於 1024 的埠,例如 8050)。請記住也要調整任何路由器設定以進行埠轉發。有關更多幫助,請參閱本文件中的其他地方。
如果您在本地網路內遇到無法檢視 MythWeb 頁面,但可以在外部檢視,那麼可能是您的路由器沒有正確傳遞內部請求。一個簡單的解決方法是在您的網路內使用 MythTV 的內部 IP 地址(而不是使用您在家庭網路之外使用的域名)。如果您這樣做,您可能需要將 MythTV 設定為使用靜態 IP 地址。您也可以透過調整路由器設定來解決此問題(但可能無法解決)。或者,您可以購買一個能夠正確執行埠轉發的路由器(據報道 思科 路由器在這方面是一個不錯的選擇)。
MythWeb 允許您透過網際網路訪問您的 MythTV。但是,要從房屋外(工作、度假等)訪問您的 MythTV,您需要讓您的計算機充當 Web 伺服器。Linux 使執行 Web 伺服器變得容易。一個名為 Apache(以 “httpd” 執行)的程式將為您完成所有工作。如果您已正確安裝 MythTV 和 MythWeb,那麼 Apache 已經在執行。
但是,如果您使用使用 DHCP 的 ISP 連線到網際網路,那麼您可能會從池中分配一個隨機 IP。這意味著您的 IP 地址將定期更改。這被稱為擁有 “動態 IP 地址”。隨著您的地址不斷更改,其他計算機如何知道在哪裡才能訪問您的 MythWeb?
解決方法是使用一個 DNS 服務,該服務會在您的 IP 地址更改時更新。幸運的是,有許多免費的訂閱服務可以讓您在 Linux 上做到這一點。最知名的似乎是 no-ip.com 和 DynDNS。 一個廣泛的選項列表 可供使用。選擇適合您的!大多數這些服務將允許您從一個簡短的列表中選擇域名,然後將您的使用者名稱對映到該域名。因此,如果您在他們的服務中的使用者名稱是 “user155”,那麼您最終可能會得到一個像 “user155.no-ip.com” 這樣的域名。然後,您可以在任何地方訪問您的 MythWeb。它的地址將是:http://user155.no-ip.com/mythweb/
如果您註冊了自己的域名,即使您的 MythTV 盒子具有動態 IP,您也可以將自定義子域名指向您的 MythTV 盒子。一旦您確認 user155.no-ip.com 指向您的盒子。在您的 "myMostFavoritestDomain.com." DNS 區域中新增一個 cname 記錄,將 mythtv.myMostFavoritestDomain.com 指向 user155.no-ip.com。確保您在域名的末尾加上一個點。否則,它會將 DNS 區域的名稱附加到您指定的名稱。例如:在 myMostFavoritestDomain.com 的 DNS 區域條目中,像 "mythtv.myMostFavoritestDomain.com cname user155.no-ip.com" 這樣的記錄實際上將 "mythtv.myMostFavoritestDomain.com.myMostFavoritestDomain.com" 指向 "user155.no-ip.com.myMostFavoritestDomain.com",這不是我們想要的。
如果您遇到 ISP 阻止埠 80 的情況,您可能需要調整 Apache 中的埠選項。有關詳細資訊,請參閱本文件中的其他幫助。這些服務將為您提供一個在 Linux 盒子上執行的程式。每當它的 IP 地址更改時,它都會更新服務,以便 DNS 查詢始終被髮送回您當前的 IP 地址。這是一種簡單(且經濟高效)的方法來獲得您自己的(半定製)域名。如果您想要一個功能齊全的域名,可以輕鬆升級您的服務。
預設情況下,MythTV 使用 mplayer 播放 DVD。但是,mplayer 不支援 DVD 選單。您可以嘗試安裝 xine,然後配置 MythTV 來呼叫 xine(有關命令列語法,請參閱 xine 手冊頁)。