サイトアイコン 十円玉ドットコム

GODIUSでYouTubeライブ配信するバッチ

オンラインRPG GODIUSのYouTubeライブ配信を
バッチひとつで出来るようにしたよ!!

下記に方法をメモっておいたので、皆さん試してみてNE(´^ω^`)

変更履歴

  1. 2023-10-05: 設定と説明を微調整
  2. 2023-09-15: バッチのBGMにネットワークストリームとローカル音声ファイルをちゃんと使えるようにした
  3. 使用できる入力は現在2系統に限定されるが、入力ボリュームのバランスを適正化できた

  4. 2023-09-06: バッチ遅延開始にも関わらず、ログイン画面が撮影されてしまう問題を解決
    ローカル音楽ファイル(プレイリスト),ネットワークストリームの埋め込みに対応
  5. 2023-08-31: chocoコマンドのインストール方法が必要だった・・・。、
  6. 2023-08-20: 配信の他、ローカル動画ファイルへの変換を実装。Chat-GPTに手直ししてもらった^^
  7. 2023-08-19: 録画開始時にログイン画面が見れてしまう危険があり、遅延開始を実装
  8. 2023-08-18: コーディング,テスト開始

実装方法

  1. 管理者用PowerShellで下記コマンド入力→chocoコマンドインストール
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  2. 管理者用PowerShellで下記コマンド入力→ffmpegインストール
    choco install ffmpeg
  3. バッチ作成
    @echo off
    rem バッチ開始から何秒で配信開始するか(数字を調整すること)
    timeout /t 30 /nobreak
    
    rem ↓YouTubeストリームキーの取得とコピペを忘れないようにNE!!
    set stream_key="****-****-****-****-****"
    
    rem 差し込みBGM用。単一の音楽ファイルでもプレイリストでもOK。
    rem 使用する場合、最終行にある %mixer% のかわりに %music_playlists% もしくは %music_loops% を挿入
    set music_playlists=-i "http://173.244.208.77:9000/stream/1/"
    rem #ループできず設定見直し中><# ## set music_loops=-i "C:\Users\****\Music\bgm_sample.mp3" -stream_loop -1 ##
    
    rem コマンド「ffmpeg -list_devices true -f dshow -i dummy」より
    rem -f dshow -i audio=(@device_cm から始まるデバイスのアドレス)を入力していく。
    rem 最下行の「ffmpeg」直後にある「%mic*%」に半角スペースで連続入力すると全部ミックスされる(はず)。
    rem 同じく最下行にある「"weights=1.5 0.1"」の最後尾で音量バランスを調節可。
    
    set mic=-f dshow -i audio="@device_cm_{********-****-****-****-************}\wave_{********-****-****-****-************}"
    set mixer=-f dshow -i audio="@device_cm_{********-****-****-****-************}\wave_{********-****-****-****-************}"
    
    rem 音声入力がひとつのときは、この変数を一番最後のコマンド変数から除外すること
    set audio_mix=-filter_complex "amix=inputs=2:duration=longest:dropout_transition=2:weights=1.5 0.1"
    
    rem 出力形式: live=Youtube / record=ローカルの動画ファイル
    rem 最終行コマンド末尾で選択 OR 半角スペースで「%live% %record%」と指定可
    set live=-f flv "rtmp://a.rtmp.youtube.com/live2/%stream_key%"
    set record=-f flv "C:\Users\****\Videos\GODIUS_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.flv"
    
    @echo on
    rem Ctrl+Cで終了
    rem -video_sizeを 800x600にすると、チャット欄を含めた全画面がキャプチャされる。
    
    ffmpeg %mic% %mixer% %audio_mix% -framerate 30 -video_size 800x480 -f gdigrab -i desktop -f lavfi -i anullsrc -c:v libx264 -vf format=yuv420p -preset veryfast -g 60 -b:v 4000k -maxrate 4000k -bufsize 12000k -c:a aac %live%
    
  4. バッチ内説明の通り、「ffmpeg -list_devices true -f dshow -i dummy」にて
    使用できるサウンドデバイスを「mic」「mixer」変数にセットしておく
  5. YouTubeの自チャンネルより配信の準備をし、ストリームキーを入手→バッチの5行目にセット
  6. ガディウスにログインする直前まで支度を進める
  7. バッチ起動→ガディ起動
モバイルバージョンを終了