VRChatで好きな動画とかを垂れ流すやつ、自分のPCから配信するver!
なにできるのこれ
これを自分のサーバーではなく自分のPCから直接みんなのVRChatに配信しよう!というものです。前よりも結構気軽に環境構築出来ると思います(セキュリティ的には弱くなるけど)
必要なものは次のような環境です。
・ポート開放が出来る環境
・人数分に配信できる回線
・VRChatができる
セットアップ
hosts書き換え
win+Rを押して、ファイル名を指定して実行で次のコマンドを入力します。windows付属のメモ帳が死ぬほど嫌いな人は使いたいエディタを管理者権限にしてhostsを開いてください。
powershell start-process notepad c:\windows\system32\drivers\etc\hosts -verb runas
出てきたテキストの一番下に行を追加して、次のように書いて保存します。[]は不要ですが半角スペースは開けてください。
不安な人は編集前のファイルを別の場所に保存しておくと良いかもしれません。
FQDN値は次のサイトで確認できます。
画像の部分のFQDN値を貼り付けてください。
windows用 rtmp/httpサーバー立ち上げ
次のURLからnginx-rtmp-win32をダウンロードします。Source Code(.zip)というリンクからダウンロードできます。
Releases · illuspas/nginx-rtmp-win32 · GitHub
zipファイルを展開後、中身のconf\nginx.confを開いてください。(好きなテキストエディタで)
26行目にある、8080という数字を80に変更して、上書き保存を行います。
編集が終わりましたら、nginx.exeを実行することで配信サーバーとして自分のPCが動作するようになります。(windowsファイヤーウォールなどは適宜許可してください。)
ポート開放
ポート開放にはルーターの設定を弄って設定することが出来ますが、面倒なので僕はUPnPで済ませています。
UPnP対応ルーターのポート開放ツールを以下からダウンロードします。
http://umemasu2018.g1.xrea.com/upnpcj/
ダウンロードしたファイルを展開して、UPnPCJ.exeを実行します。初回起動時はポート開放チェックしてくれるらしいので、出来るかどうか確認しておくと良いです。
確認後、①WAN_PORTに80と入力し、⑩Port開放をクリックします。
HTTPの疎通確認は次のものを利用すると良いです。URL欄に次のものを入力して、接続できることを確認してください。(nginxが立ち上がっていないと失敗します)
「HTTP/1.1 200 OK」と出ればオッケーです。
http://[使っている回線のFQDNの値]/
また、内部接続確認は使っているブラウザに上記のものを入力することで確認できます。次のような画面が出てくればオッケーです。
配信を行う
任意の配信ソフトを用意して配信設定を行います。(説明ではOBSを使用します)
以下のように設定を行ってください。ストリームキーは何でも良いですが、覚えておいてください。
URL
配信設定は何でも良いですが、回線は自分以外の人数分の数だけ上り回線が必要です。
設定が済みましたら、配信を行ってください。
ここまでうまく設定できていれば、nginxのtemp\hlsにファイルが生成されているはずです。
配信閲覧用URLは次のURLです。
http://[使っている回線のFQDNの値]/hls/[ストリームキー].m3u8
上記のURLをブラウザのアドレスバーに入れ、ファイルが取得できれば内部疎通確認OK、HTTPチェックサイトのURLに指定して「HTTP/1.1 200 OK」と出れば外部疎通確認OKです。
いざVRCへ
VRChatのiwasync、坪倉家の動画プレイヤーなどで「LIVE」ボタンを選び、配信閲覧用URLを入力することで、配信が始まります。
補足事項
・ポート8080だとVRChatがゴネて動きません、80にしましょう。
・rtmpは例えポート80にしてもVRChatは読み込まないみたい、残念。
・mpeg-dashとかいう強そうなやつもだめでした、hlsだけです。
・hosts書き換えは環境によっては不要な場合もありますが、大抵はルーターが自分自身にアクセスしようとするところでおかしくなるので必要だと思います。
・hosts書き換えが毎回必要で面倒な人はDDNS取るといいです。FQDNが変わるたびにhosts書き換えしなくて済むようになります。
DDNS(ダイナミックDNSサービス)とは?無料DDNSサービスの「mydns」で、自宅PCを設定したみた
・僕の回線は16Mbpsとかしか出ないのでこの方法での配信は厳しいです、残念。