Back
Featured image of post 不要再 Zoom 了!用自由軟體來上遠端音樂課吧~

不要再 Zoom 了!用自由軟體來上遠端音樂課吧~

30 分鐘內,擁有自己專屬的遠端會議/課程主機!而且很便宜喔~

      

最近台灣的疫情變嚴重,所以我把我工作室所有的實體鋼琴課跟編曲課都取消了,現在開始百分之百轉換成遠端教學。

之前在檸檬卷的頻道,我們做了一個「如何上遠端鋼琴課」的影片,在那一部影片,我們是推薦音樂老師們用 Zoom 這個軟體來上遠端音樂課,主要的原因是因為,在目前主流的所有視訊會議軟體當中,只有 Zoom 有特別針對音樂設計的「音樂模式」,上起音樂課的效果,的確是當時我測試過的軟體之中最好的。

但是我必須要說,雖然 Zoom 是一個寫得很不錯的軟體,我自己其實沒有很喜歡 Zoom,原因主要有兩個。

為什麼我不想用 Zoom

第一個原因是,Zoom 這家公司在資安以及保護言論自由的方面的過去記錄不是很好。

在 2020 年的 3 月,Zoom 曾經被媒體踢爆,他們對大眾宣稱 Zoom 的會議內容都有「端到端加密」,但事實上沒有,而且未加密的會議,還透過了位在中國的主機來傳輸。

2020 年 6 月,Zoom 關閉了美國和香港的多個人權活動者的賬戶,Zoom 後來承認是應中共政府的要求,把這些人的帳戶停權,因為他們在 Zoom 的線上會議裡紀念 1989 年的六四天安門事件。Zoom 回答說,它必須「遵守當地法律」,就連「反對言論自由的政府的法律」也是。

來自 www.WashingtonPost.com
來自 www.WashingtonPost.com

2020 年 12 月 19 號,美國司法部指控 Zoom 的一個員工 Julien Jin 跟中國的情報組織有聯繫,Zoom 公司後來發了聲明,說已經解僱他,因為他「違反了公司政策」。

來自 BBC.com
來自 BBC.com

第二個原因是,就算 Zoom 沒有以上的資安以及受中共操控的問題,它還是一個封閉式的商業軟體,如果遠端音樂課將來會成為我的主要收入來源之一的話,把我自己吃飯維生的工具,建立在一個封閉式的商業軟體上,我覺得是非常不聰明的。因為 Zoom 的商業模式可能會改變,他也可以因為任何理由將我的帳號停權,如果我過度依賴他的話,我將來也可能會受他控制。

所以唯一的解藥就是,尋找自由軟體的解決方案,然後把那個自由軟體架設在自己的主機上面。

欸你們聽到要架主機不要就嚇到然後就逃走喔!今天我們要做的事情其實很簡單的,一般人大概花個 30 分鐘就可以整個架設好了,我會把整個流程一個步驟一個步驟跟你說。因為我真的很希望所有的音樂老師、和所有需要遠端會議的人,都可以使用自由軟體,來免除商業軟體的控制,遠端會議以後一定是一個日常生活必需品,千萬不要讓必需品受到大公司的掌控阿

為你介紹 Jitsi Meet

今天我們要使用的軟體叫做 Jitsi Meet,它是一套完全自由、完全加密,所有人都可以永久免費使用的視訊會議軟體,而且更好的是,如果你用這篇文章的方式架設的話,它的畫質跟音質,可以比現在所有的商業視訊會議軟體還要更好喔!

整個架設的流程只有三大步驟:

  1. 租一台虛擬主機,並且等它自動安裝軟體。
  2. 設定登入的帳號密碼。
  3. 調整音效設定,讓它變成適合遠端音樂課使用。

那我們現在就開始吧!

每小時只要台幣 0.2 元的超便宜虛擬主機

第一步是租一台虛擬主機,所謂的虛擬主機,其實就是「別人的電腦」拉!

我推薦你使用的主機商是 Linode.com,這個不是業配唷,純粹是因為我自己覺得它很好用,而且它可以單鍵自動就把 Jitsi Meet 裝好,超級方便!到 Linode.com 按右上角的 Sign Up,申請一個帳號,申請好帳號並且登入之後,你就會來到這個後台管理的主畫面。

按左上角的「Create」,然後選最下面的「Marketplace」,這個 Marketplace 超級好用,它是一些預先已經設定好、會自動安裝軟體的主機,你只要按一個鍵馬上就可以開通了。

到了 Marketplace 之後,做以下的設定:

  • Select App:選擇「Jitsi」
  • 關於 DNS 的設定都可以不用填
  • Admin Email for the Jitsi Server:填上你自己的 e-mail
  • Would you like to use a free Certbot SSL Certificate:選「Yes」
  • The limited sudo user to be created for the Linode:取一個管理主機的使用者名稱
  • The password for the limited sudo user:設定上面那個使用者的密碼
  • SSH Public Key:不用填
  • Disable root access over SSH:選「No」
  • Select an Image:預設就好,不用動它
  • Region:設定主機要擺在哪個國家,住台灣的話你就選日本吧
  • Linode Plan:選最便宜的 Nanode 1GB 就好
  • Linode Label:幫這台主機取一個暱稱,不想改就用預設的也沒有關係
  • Root Password:設定這台主機「最高管理權限」的密碼,設定好之後千萬不要忘記喔!

Linode 是以小時計費的,你看他最低配備的方案一小時只要 0.0075 美金,就是差不多兩毛錢台幣,那如果用滿一整個月的話收費上限也只要 5 塊錢美金,超便宜對不對?如果你真的超省錢的話,你也可以開會前才建立主機,然後一開完會就把它刪掉,這樣可能你開一次會還花不到台幣一塊錢。

這樣子就全部好了,按右邊的「Create Linode」按鈕,我們就在日本有一台專屬的主機囉!

等待主機自己把軟體裝好

建立好我們的新主機之後,它就會回到主畫面,你可以看到我們主機的 IP 位置等等的資訊。然後你看它上面有一個黃燈寫「Provisioning」,表示我們的新主機正在準備中;然後它的狀態會變成「Booting」,就是開機中;最後會變成亮綠燈寫「Running」,這表示這台主機已經開機完成囉!

主機變成狀態「Running」之後,還會進入一個自動安裝程序,它會自動幫你安裝所有我們需要的軟體,我會建議你先放置 15 分鐘不要動它,這個時候你可以先去泡一杯咖啡再回來。

大概 10 到 15 分鐘之後,這個遠端會議系統就已經是可以用的狀態了,你現在打你主機的網址進去就可以直接使用。要怎麼知道主機的網址呢?在剛才的主畫面按下「Network」,然後找到「Reverse DNS」這邊,下面的這一行字就是你的網址,把它複製起來貼到瀏覽器上面,你應該就可以看到這個遠端會議系統的首頁了,然後你要用的話,其實現在就也可以用了喔!

但是先不要急,現在我們的遠端會議主機還沒有設定登入帳密,所以是一個門戶大開的狀況,任何知道網址的人都可以使用,這樣子聽起來蠻糟的,所以我們要去設定一下會議系統的登入帳號密碼。

用 SSH 遠端登入主機

回到 Linode 的後台主畫面,你看到右上角有一個「SSH Access」嗎?

把這裡面的字 ssh root@172.104.101.116 複製起來(當然你要把 IP 位址改成你自己的),然後打開你電腦上的終端機,貼上這個指令,按 enter。

這個 SSH 是一個遙控遠端電腦的程式,這一行字的意思就是,我們要以最高權限使用者的帳號,登入我們的主機。它如果要你輸入密碼的話,就表示你成功連上囉!那你就輸入你剛才設定的最高管理權限的密碼,然後按 enter。

我們遠端登入這台主機,只是要來改幾個文字檔而已,真的不會很難,你仔細照著我下面的步驟一步一步做就可以了喔!如果你真的超級害怕這種純文字模式的話,你可以先去看我另外一個頻道 NiceCode 的終端機教學再回來,應該就不會那麼害怕了。

修改第一個檔案

成功登入之後,首先:

cd /etc/prosody/conf.avail
ls

這個的意思是列出「cd /etc/prosody/conf.avail」這個資料夾的檔案。你看到這個資料夾裡面有三個檔案對不對?中間這個「li1711-116」開頭這個就是我們要更改的第一個設定檔,你的「li」後面的主機編號會跟我有一點點不一樣,那是正常的喔。

然後用「nano」這個文字編輯器,去編輯這個「li 什麼什麼」的這個檔案:

nano li1711-116.members.linode.com.cfg.lua

進入了 nano 文字編輯器之後,你就用鍵盤的方向鍵往下捲,找到像是畫面上開頭有「VirtualHost」,後面接著「li 什麼什麼」的這一段,它原本大約像是這樣子:

VirtualHost "li1711-116.members.linode.com"
    -- enabled = false -- Remove this line to enable this host
    authentication = "internal_hashed"
    -- Properties below are modified by jitsi-meet-tokens package config
    -- and authentication above is switched to "token"

-- 還很長,以下省略 --

它裡面有一行原本是 authentication = "anonymous",這個意思是它目前是設定匿名都可以登入,那我們要把這一行改成:

authentication = "internal_hashed"

讓它變成是需要密碼才能登入。

改完這裡之後繼續往下捲,捲到「VirtualHost」這一段完全結束,然後在整段的「後面」,貼上以下程式碼:

VirtualHost "guest.li1711-116.members.linode.com"
    authentication = "anonymous"
    c2s_require_encryption = false

記得你的主機編號會跟我不一樣喔,所以你要把中間數字的部分改成你自己的主機編號,改完看起來像是這樣子:

這樣子這個檔案就改好了,你要按 Ctrl+O 來存檔,它會問你存檔的檔名,直接按 enter 就好,然後再按 Ctrl+X 來結束。

第二個檔案

接下來我們到第二個資料夾去改第二個檔案,輸入:

cd /etc/jitsi/meet
ls

這個資料夾有三個檔案,我們要編輯結尾是「.js」的那一個。所以我們就:

nano li1711-116.members.linode.com-config.js

這個檔案目前我們只要改一個地方,那就是 anonymousdomain 這一行,你要把前面兩個斜線刪掉,然後把這行改成以下類似這樣(別忘記你的主機編號會跟我不同唷):

anonymousdomain: 'guest.li1711-116.members.linode.com',

改完檔案整體大概長這樣:

image-20210531221706944
image-20210531221706944

然後就一樣的流程,按 Ctrl+O 然後 Enter 來存檔,然後按 Ctrl+X 離開。

最後一個檔案

到目前為止都有跟上嗎?剩下最後一個檔案了,這次輸入:

cd /etc/jitsi/jicofo
nano sip-communicator.properties

這一個檔案目前只有一行字,先把游標移到最右邊,然後按 enter 來新增一行,你要在第二行貼上以下的文字。

org.jitsi.jicofo.auth.URL=XMPP:li1711-116.members.linode.com

你應該也有注意到這一行字的後面有「li 什麼什麼」的網址對不對?當然你也要把這個編號改成你自己主機的編號喔!所以最後這個文件看起來就會類似下面這樣子:

改完之後,還是一樣的流程,按 Ctrl+O 然後 Enter 來存檔,然後按 Ctrl+X 離開。

快好了!

我們剛才改的那三個文字檔的意思都是,要把這個遠端會議系統設定成需要帳密才能登入,那現在我們終於要來設定那個帳密是什麼了。現在直接在終端機輸入:

prosodyctl register 使用者名稱 li1711-116.members.linode.com 密碼

再次提醒,你的「li」後面的數字會跟我不一樣喔!這樣就建好帳密了,一定要把帳號密碼記好,等一下實際遠端會議的時候它會要你輸入。

接下來我們要重新啟動這個遠端會議系統。依序輸入:

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2

恭喜你,這樣就全部都設定好了!你現在如果打開你的瀏覽器,輸入那一串「li 什麼什麼」的網址,你應該就可以看到遠端會議系統的首頁了!

如果你是一般講視訊電話使用的話,那其實你做到這邊就可以了,但是如果你是要用它來上遠端鋼琴課、音樂課的話,我們就必須再改一個設定,把它變成適合音樂使用的高音質模式。

高音質模式

如果你一路跟隨這個教學到現在,你現在應該已經很熟悉改文字檔的流程了吧?我們現在再一次:

cd /etc/jitsi/meet
ls

用「nano」來編輯這個名稱是「.js」結尾的那個檔案:

nano li1711-116.members.linode.com-config.js

這個檔案其實我們剛才就有編輯過啦,所以如果你想要把現在我說的要改的東西,跟前面那個步驟一起做其實也可以的,只是我這樣子分開解說比較方便。

總之呢,這個檔案可以用來調整遠端會議的很多選項,包含操作介面、畫質跟音質等等,我們一直往下捲,直到你看到寫「Audio」的這一行,Audio 下面這一段就是所有的音效設定囉,讓我來跟你講要改哪些設定,我們繼續慢慢往下捲。

首先第一個要改的是 enableNoisyMicDetection,這個選項是在設定說,如果它發現你的麥克風很吵的話,要不要出現一個警告來提醒你,但是它都會把音樂誤認為是麥克風很吵,所以我要把這個選項關掉,也就是把後面的「true」改成「false」。

enableNoisyMicDetection: false,

繼續往下捲,接下來我們就來到最重要的地方了,就是「audioQuality」這邊,這四行就是我們的遠端音樂課能不能順利進行的關鍵

因為大部分的會議軟體,都會自動去除回音、去除雜音和自動調整音量,但是這些功能都是為了人講話的情況設計的,他們會非常嚴重的破壞音樂,造成它根本就沒有辦法用來上音樂課,那設定這邊就是可以把這些功能都關掉。

你要把:

  • 「audioQuality」開始的連續四行前面的斜線都刪掉;
  • 把「stereo」改成「true」,這個的意思是讓我們有左右聲道的立體聲;
  • 把下面這一行「opusMaxAverageBitrate」從「null」 改成「128000」;

這個「128000」是在設定音質,數字越大音質就越好,但是也會耗費比較大的網路頻寬,我覺得「128000」是一個不錯的設定,如果你想要音質再更好一點點,也許還可以再往上調到「160000」,不過我在這邊用「128000」就好。

整個四行改完看起來像這樣:

 audioQuality: {
     stereo: true,
     opusMaxAverageBitrate: 128000
 },

到這邊真的真的就完全都好了,按 Ctrl+O 然後 Enter 來存檔,然後按 Ctrl+X 離開。

來遠端上課囉!

我們來實際試用看看吧!打開瀏覽器,輸入我們主機的網址,你就會進到這個主畫面,在文字框輸入一個會議室代碼,例如說我們就叫它「nicechord」好了,然後按「Start Meeting」。

你的瀏覽器可能會要你同意它使用麥克風跟攝影機,你就按同意。然後它就會出現一個「等待主持人中」的字樣,那你就按下面的按鈕說「I am the host」。

然後我們剛才前面不是用過一個 prosodyctl 的指令去建立帳號跟密碼嗎?輸入你那時候建立的帳號密碼,這樣就開好會議室了。

這時候你就只要把上面的網址,複製給別人,別人直接用瀏覽器進到這個網址,不需要下載或安裝任何東西,就可以直接跟你視訊會議了,你可以把這個連結丟給很多人,多人會議也是可以的,而且完全沒有時間限制喔!


以上就是今天的、用自由軟體架設遠端視訊會議系統的課程,我強烈建議所有需要用遠端視訊的人,尤其是需要上遠端課程的音樂老師們,使用我今天教你的這種解決方案。

使用自由軟體不但更安全、音質跟畫質都更好,更重要的是只需要付非常便宜的主機費用,軟體的話永久都可以無限制地免費使用,也不像 Zoom 的免費版有多人會議只能 40 分鐘的限制。

然後要提醒你們,如果你有照我前面教你的步驟,把它設定成音樂模式的話,它就是變成沒有消除回音功能的喔,所以所有參與開會的人都一定要使用耳機,才不會瘋狂回音,這點非常重要喔!