オンラインRPG GODIUSのYouTubeライブ配信を
バッチひとつで出来るようにしたよ!!
下記に方法をメモっておいたので、皆さん試してみてNE(´^ω^`)
変更履歴
- 2023-10-05: 設定と説明を微調整
- 2023-09-15: バッチのBGMにネットワークストリームとローカル音声ファイルをちゃんと使えるようにした
- 2023-09-06: バッチ遅延開始にも関わらず、ログイン画面が撮影されてしまう問題を解決
ローカル音楽ファイル(プレイリスト),ネットワークストリームの埋め込みに対応 - 2023-08-31: chocoコマンドのインストール方法が必要だった・・・。、
- 2023-08-20: 配信の他、ローカル動画ファイルへの変換を実装。Chat-GPTに手直ししてもらった^^
- 2023-08-19: 録画開始時にログイン画面が見れてしまう危険があり、遅延開始を実装
- 2023-08-18: コーディング,テスト開始
使用できる入力は現在2系統に限定されるが、入力ボリュームのバランスを適正化できた
実装方法
- 管理者用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'))
- 管理者用PowerShellで下記コマンド入力→ffmpegインストール
choco install ffmpeg
- バッチ作成
@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%
- バッチ内説明の通り、「ffmpeg -list_devices true -f dshow -i dummy」にて
使用できるサウンドデバイスを「mic」「mixer」変数にセットしておく - YouTubeの自チャンネルより配信の準備をし、ストリームキーを入手→バッチの5行目にセット
- ガディウスにログインする直前まで支度を進める
- バッチ起動→ガディ起動