前言

最近買了幾款 PS4 遊戲,想嘗試直播遊玩畫面。

由於我主要經營的社群平台是 Instagram,所以研究了如何於 macOS 上進行 IG 直播。


軟體需求

OBS:開源的跨平台串流媒體和錄影程式。

Soundflower:macOS 擴展,允許應用程式將音頻傳遞給其他應用程式。


實作過程

安裝 PHP、Composer

於終端機下指令,利用 Homebrew 安裝 PHP、Composer:

brew install php
brew install composer

部署 PHP

  1. /usr/local/中搜尋misc檔案夾。

    cacert.pem 放入建立時間最新的misc檔案夾,並記錄下路徑。

    範例:/usr/local/etc/[email protected]/misc/cacert.pem

  2. /usr/local/中搜尋php.ini檔案。

    將下列段落開頭的;去除:

    extension=curl
    extension=gd2
    extension=exif
    

    於段落curl.cainfo中填入cacert.pem路徑:

    curl.cainfo = "/usr/local/etc/[email protected]/misc/cacert.pem"
    

部署 InstagramLive-PHP

  1. 下載 InstagramLive-PHP,並 cd 進去安裝套件:

    git clone https://github.com/JRoy/InstagramLive-PHP
    cd InstagramLive-PHP
    composer require mgp25/instagram-php react/child-process
    
  2. 於檔案config.php中輸入 IG 帳密:

    define('IG_USERNAME', 'yuripe');
    define('IG_PASS', '12345678');
    

OBS 設定

  1. 下載並安裝 OBSSoundflower

  2. 開啟 OBS,並設定:

    • 設置輸出比特率15000 Kbps
    • 設置音頻桌面音頻Soundflower(2ch)
    • 設置視頻分辨率720x1280
  3. 開啟Audio MIDI Setup.app,於左下製作多重輸出裝置並勾選Soundflower(2ch)


開始直播

  1. InstagramLive-PHP檔案夾開啟終端機下指令:

    php -f goLive.php
    
  2. 複製終端機中的Stream URLCurrent Stream Key至 OBS 設定中:

    • 設置推流服務自定義
    • 設置推流服務器Stream URL
    • 設置推流串流密鑰Current Stream Key

    設定完成後,調整欲擷取的內容,並開啟 OBS 的推流。

  3. 開啟Audio MIDI Setup.app,右鍵點擊多重輸出裝置使用此裝置來輸出聲音

  4. 回到終端機按下Enter,將新開啟另一個終端機視窗,開始直播。

    (若要觀看自己的直播,需用另一隻帳號觀看。)


結束直播

  1. 於新開的終端機視窗輸入end指令(指令集可參考 官網)。

    程式會詢問是否保留直播內容 24 小時,視有無保留需求輸入:

    Would you like to keep the stream archived for 24 hours? Type "yes" to do so or anything else to not.
    
  2. 關閉 OBS 的推流。

  3. 開啟Audio MIDI Setup.app,右鍵點擊內建的揚聲器選項→使用此裝置來輸出聲音