Pages

2013年1月8日

[ Streaming, Windows 軟體 ] OBS – Open Broadcaster Software 與 PotPlayer 協力實況

00034
在之前的 [ Streaming ] XSplit / FFSplit / Open Broadcaster Software 實況魔獸時(Windows 平台)的一些簡單心得 中曾經介紹過實況界的新星:OBS ( Open Broadcaster Software )。它免費,開源,消耗的系統資源低但輸出品質高。但當時只有簡單的說明 OBS 與 FFSplit 和 XSplit 之間的優缺點比較而已。這次來做比較深入的介紹:如何利用 OBS 將 PotPlayer 播放的影像實況播送。
這次將會採取 step by step 的方式,說明 OBS 的設定,以及如何與 PotPlayer 配合。目標是 OBS 擷取 PotPlayer 播送的影像內容,送到串流伺服器進行實況。但是除了 PotPlayer 播放的內容以外,其他的活動都不會被實況出去。
  1. 首先,到 http://obsproject.com/download 下載 OBS 軟體。直接選擇 "Installer" 下載即可。(本文發表當下 OBS 最新穩定版本為 0.466 Alpha)
     
  2. 下載後,安裝 OBS。過程中並沒有什麼需要特別交待的。
     
  3. 啟動 OBS。
     
  4. 這就是 OBS 的主畫面:
    00001
    接下來的解說中,由於 OBS 有提供正體中文語系,但是抓取解說用圖片時都是以英文語系為主,因此後面的敘述,將會以英文敘述為主,而在後面括號內加入正體中文語系的翻譯供對照用。
     
  5. 首先進 Settings(設定) -> Settings(設定)。
    00002
     
  6. 第一個是 General(一般)
    00003
     
  7. 這邊可以建立新的 profile(設定檔)。只需要在 Setting Profile(設定檔設定)欄位輸入新的 profile(設定檔)名稱,然後按下 Add(添加)即可。
    00004
    如果要刪除,只要先選擇要刪除的 profile(設定檔)之後,按下 Remove(移除)即可。
    如果要更名,只要先選擇要更名的 profile(設定檔),然後在 Setting Profile(設定檔設定)欄位直接修改後,按下 Rename(重新命名)即可。

    這邊還可以選擇介面顯示的語言。
    00005
    選擇好語言後,必須重新啟動 OBS 才會生效。
     
  8. 接下來是 Encoding(編碼)。
    00006
     
  9. 在 Video Encoding(影像編碼)這邊…
    Quality Balance(品質)可以從下拉式選單選擇。從 1 到 10。數字越大,則實況輸出的影像品質越高。
    00007

    Max Birate (kb/s)(最大位元速率 (kb/s))則是指實況串流的流量大小。一般來說設定在 1000 就夠了。
    Buffer Size (kbit)(緩衝大小 (kbit))與上面設定一樣的數字即可。
     
  10. 在 Audio Encoding(音訊編碼)這邊…
    Codec(編解碼器)可以選擇音訊編碼格式是 AAC 或 MP3。現在知名的實況網站應該兩種都支援。如果沒聲音的話再換成另外一種格式試試看。
    00008

    Bitrate(位元率)則影響音訊的品質。128 已經足夠。如果再增加這個數字就得考慮上傳頻寬。
    00009

    Format(格式)則是已經被固定為 44.1khz stereo,無法變更。
     
  11. 在 General(一般)以外的設定值被變更的話,想要切換到別的設定區域,都會收到這樣的警告訊息:
    00010
    Would you like to save and apply your change? 您想要儲存並且應用您的變更嗎?
    Yes 是,No 否,Cancel 取消。

    此時當然是選 Yes(是),除非你想捨棄變更。另外一個避免這個視窗跳出來的方式,就是每次變更後按下右下角的 Apply(應用)按鈕。
     
  12. 接下來是 Broadcast Settings(廣播設定)
    00011
    這邊可以設定的項目就多了些了…

    Mode(模式)有兩種:Live Stream(直播串流)跟 File Output Only(只輸出檔案)。既然是要玩實況,當然是選 Live Stream(直播串流)。
    00012
    File Output Only(只輸出檔案)則只會將處理的影像直接輸出到指定位置,以檔案方式儲存。

    Streaming Service(串流服務)用來選擇實況網站。OBS 目前內建已支援了 Twitch/Justin.tv,Own3D.tv,Vaughn Live,iNSTAGIB.tv 與 GoodGame.ru 等知名實況網站。如果你的實況網站不在內建支援中,可以選擇 Custom 來手動設定。這篇文章所使用的實況網站是 Twitch/Justin.tv。
    00013

    FMS URL 就是串流伺服器的 URL。如果在 Stream Service(串流服務)選擇了內建的服務,則 FMS URL 這裡可以選擇該服務提供的伺服器。例如在 Stream Service(串流服務)選擇了 Twitch/Justin.tv 的話,則 FMS URL 就會提供數台伺服器供選擇:
    00014
    怎麼知道哪一台伺服器才是好選擇呢?首先 ping 值低的伺服器值得優先選擇。如果是用 Twitch/Justin.tv 服務的話,有一隻名為 JTVPing 的小程式可以偵測從你的電腦到 Twitch/Justin.tv 每一台伺服器的 ping 值(可以從 這邊 取得。已被 VirusTotal 掃描過,無威脅)。JTVPing 只需要直接啟動,然後它會自己下載 Twitch/Justin.tv 的串流伺服器列表,接著就從啟動的電腦去 ping 每一台串流伺服器,並且將結果顯示出來(如下圖):
    00015
    從這邊可以看得出來,Asia: Singapore(亞洲: 新加坡)伺服器理論上是首選。如果選擇了 Asia: Singapore 但是實況表現依然不理想,有可能是頻寬的問題。此時可以選擇 US West: Los Angeles, CA 或 US West: Los Angeles, CA (Secondary)。至於其他 ping 值紅色的伺服器都是不值得選擇的。

    接下來是 Play Path/Stream Key (If any)(播放路徑/串流碼 (如果存在))對於 Twitch/Justin.tv 是必須的。每一個 Twitch/Justin.tv 帳號都會有一組自己的 stream key。這組 stream key 是獨一無二的,而且 Twitch/Justin.tv 也警告使用者,這組 key 不能外流。因為只要有這組 key,就可以控制這個帳號的實況內容的一切:開始實況,停止實況,刪除實況存檔等等。取得這組 key 的方式…

    Twitch.tv 網頁:登入後,進入 http://www.twitch.tv/broadcast,點擊下圖紅圈處的 Show Key,就會看到 stream key。
    00016

    Justin.tv 網頁:登入後,進入http://www.justin.tv/broadcast/adv_other,點擊下圖紅圈處 Show,就會看到 stream key。
    00016n

    將得到的 stream key 填入 Play Path/Stream Key (If any)(播放路徑/串流碼 (如果存在))。注意!複製 stream key 的時候,要特別注意是否多複製了尾端一個空白。常常會因為這個空白而導致 stream key 不對而無法實況呦!00017

    Auto-Reconnect(自動重新連線)一定要打勾。

    Auto-Reconnect Timeout(自動重新連線逾時)設定每次自動重新連線如果超過幾秒就重試一次。

    Delay (seconds)(延遲 (秒))如果這裡有值 n,則使用者看到的實況內容將會比你的晚 n 秒(不考慮實況本身就會有的一點延遲)。

    Dashboard Line (if any)(儀表板連結 (如果存在))這邊可以任意填入,不是必須。上圖中的連結是 Twitch.tv 的連結。

    Save to file(儲存到檔案)實況的同時還可以儲存一份影像到指定的路徑中。

    File Path(檔案路徑)只有當 Save to file(儲存到檔案)打勾時,這邊才能設定。用來指定存放檔案的路徑。

    Start Stream Hotkey(開始串流熱鍵)可以設定一組熱鍵,當這組熱鍵被觸發時,OBS 就會開始實況。按下 Clear(清除快捷鍵)可以清除設定的熱鍵。

    Stop Stream Hotkey(停止串流熱鍵)可以設定一組熱鍵,當這組熱鍵被觸發時,OBS 就會停止實況。按下 Clear(清除快捷鍵)可以清除設定的熱鍵。
     
  13. 接下來是 Video(影像)設定
    00018

    在 Base Resulotion(基礎解析度)直接設定你的桌面解析度。在 Custom(自訂)處輸入桌面解析度。如果你有一個以上的桌面,可以選擇大的優先。如果不知道解析度,也可以點 Monitor(監控器),然後從下拉式選單中選擇要設定成哪一個螢幕的桌面的解析度。

    如果桌面解析度 1920x1080,實況的時候也需要用到 1920x1080 嗎?不一定。基於考量下,可能實況的解析度只需要 1280x720 即可,此時就利用 Resolution Downscale(解析度壓縮)來處理。OBS 內建四種壓縮:1/1.5,1/2,1/2.25 以及 1/3。
    00019

    FPS 就是「每秒幾禎」。一般來說設定 30 足矣。

    Disable Aero at startup(啟動時停用 Aero)除非 OBS 與 Aero 運作上有問題,否則不建議將這個打勾。因為 Aero 存在下有助於提昇效能。
     
  14. 接下來就是 Audio(音效)。
    00020

    Microphone/Auxiliary Audio Device(麥克風/輔助音訊裝置)通常這邊維持 Default(預設)即可。除非你的環境有多組麥克風或是聲音輸入,才需要在這邊特別指定麥克風收音要使用哪一組音訊裝置。

    Use Push-to-talk(使用隨按即說)如果這邊不勾選的話,則 OBS 會一直接收麥克風的聲音並且將之隨著實況訊號送出。但是如果這邊打勾的話,需要設定一組熱鍵。只有當該組熱鍵觸發時,麥克風才收音。熱鍵未觸發時,麥克風不收音。

    Push-to-talk Delay (milliseconds)(按鍵發話的延遲 (毫秒))觸發熱鍵後等待 n 毫秒後才收音。通常這是避免剛觸發的時候造成的噪音被 OBS 送出。

    Mute/Unmute Mic Hotkey(麥克風靜音/回復熱鍵)可以設定一組熱鍵,當該組熱鍵觸發時,麥克風靜音。若該組麥克風再度被觸發,則取消麥克風靜音。

    Mute/Unmute Desktop Hotkey(桌面靜音/回復熱鍵)可以設定一組熱鍵,當該組熱鍵觸發時,桌面所有聲音靜音。若該組麥克風再度被觸發,則取消桌面靜音。

    Force Microphone/Auxiliary to Mono(強制麥克風/輔助音訊裝置單聲道)如果有需求(例如輔助音訊裝置的訊號來源是多聲道),將之打勾。

    Mic/Aux Boost(multiple)(麥克風/輔助音訊裝置音量增量 (多工))這邊將 multiple 翻成多工似乎有問題,應該是倍增才對。如果麥克風/輔助音訊裝置的聲音太小,可以調整這邊的數值使聲音放大。

    Mic Time Offset (milliseconds) 不清楚這個設定值的用途。會再查明!
     
  15. 最後 Advanced(進階)的部份,這次不說明。但是將會擇日補上。
     
  16. 此時按下 OK(確定)儲存設定。回到主畫面。
     
  17. OBS 支援多組 Scene(場景),但是都要手動設定。預設已經存在一組空白的 Scene(場景)。可以用右鍵選單來替每組 Scene(場景)設定熱鍵供快速切換。
    00024
     
  18. 有了 Scene(場景)後,還要設定 Sources(來源)才行。預設的 Scene(場景)是空的,因此要手動增加 Sources(來源)。由於這次要合作的對象是 PotPlayer,因此先啟動 PotPlayer。然後在 Sources(來源)用右鍵選單,選 Add Software Capture(添加 軟體擷取來源)。
    00025

    首先會要求替這個 source(來源)輸入一個名稱。
    00026
    這邊就輸入 PotPlayer。

    接著在 Software Capture(軟體擷取)處有幾種擷取方式。
    00027
    Monitor Capture(監控器擷取)這是選擇讓 OBS 直接擷取一整個螢幕的內容。可以用 Monitor(監控器)選擇要抓哪個螢幕。

    Windows Capture(擷取視窗)只擷取指定的(瀏覽器,檔案總管,多媒體播放器,遊戲)視窗的內容。選了這個選項後,旁邊的 Window(視窗)就會亮起來。首先按一下 Refresh(重新整理)之後,從下拉選單找出 PotPlayer。
    00028
    只需要點一下 PotPlayer 即可(如果將來要實況別的視窗的內容,也是一樣的作法,但是從下拉式選單選擇該視窗)。

    然後將 Capture Layered Windows(擷取視窗圖層)打勾。如果不希望滑鼠經過 PotPlayer 時會被 OBS 擷取滑鼠影像,就將 Capture mouse cursor(擷取滑鼠)取消打勾。
    00029
    Inner Window 的意思是不擷取視窗的邊框。Entire Window 的意思是連視窗邊框都擷取。由於 PotPlayer 沒有 Windows 的視窗邊框,因此無論是選擇 Inner Window 或是 Entire Window 結果都是一樣的。

    如此一來,Software Capture(軟體擷取)就設定完成了。按下 OK(是)儲存設定,回到主畫面。
     
  19. 回到主畫面後,還有最後幾個步驟要完成。首先,用 PotPlayer 播放打算實況的影像,並且將 PotPlayer 調整到適當地大小之後,回到 OBS。按下 Preview Stream(預覽串流)。這個功能可以模擬實際實況時的輸出,讓我們檢查是否有設定錯誤。如下圖,可以看到 PotPlayer 並未填滿整個實況的畫面。
    00032

    此時按下 Edit Scene(編輯場景), 此時可以看見 PotPlayer 影像的周圍出現了紅線框。此時可以拉動紅線框來調整影像的大小與位置。
    00033

    將 PotPlayer 的影像調整到適當大小與位置後,再按一次 Edit Scene(編輯場景)就可以將影像位置的設定儲存起來。
    00034
     
  20. 此時可以按下 Stop Preview(停止預覽)了。
     
  21. 為了保險起見,此時先退出 OBS,確定剛剛所有設定的存檔了。
     
  22. 啟動 OBS,然後準備好你的 PotPlayer 與影像。你隨時都可以按下 Start Streaming(開始串流)來推送你的實況囉。

沒有留言: