amazonのAWSというサーバーPCが借りられるサービスを利用してshoutcast、icecast2、MediaMTXをインストールして配信に使える状態までにする備忘録です。
ec2は起動時間で課金されるから起動させっぱなしだと、すごい金額請求されるから注意です。
定額で500円/月程度のlightsailというサービスもあります(ホームページは常時稼働させておかないとだから私はホームページの方はlightsailのサービスを利用してます)
今回ec2を利用したのは配信時だけ起動するようにすれば、月に数回配信しても数百円で済みそうだからです)
どうしてAmazonで借りてるかというと、回線や借りられるPCのスペックが良くて配信が切れないからです)
ec2でインスタンス(私はubuntuを選択)を作成して、sshで接続できたところからの説明になります。
☆shoutcastからインストールする
shoutcastとicecastは初期設定だと同じポート番号を使用するようです。
ですので、先にshoutcastをインストールしてポートを変えてからicecastをインストールするのが簡単かなぁと思いました。
☆shoutcast用ユーザーの作成
shoutcastのインストールでは、専用のユーザーを作成しないと起動に失敗するみたいですので
sudo adduser <任意の名前>
で、ユーザーを作ります。
作ったら、作成したユーザーに
su <任意の名前>
で、ユーザーを切り替えてください。
☆shoutcastのインストール
cd /home/<任意の名前>
で、作成したユーザーのホームディレクトリに移動し、
wget http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64-latest.tar.gz
で、プログラムをダウンロードします。
続いて、
tar xfz sc_serv2_linux_x64-latest.tar.gz
として、ファイルを解凍します。
その次は
nano sc_serv.conf
としてnanoエディターで sc_serv.conf の中身を以下のようにタイプして保存終了します。
NOTE: for any relative paths specified are relative to
; sc_serv and not to where the conf file is being stored
; here we will setup where the log and other related files
; will be stored. make sure that these folders exist else
; sc_serv will throw an error and will close itself down.
; we will make the logs save to the sc_serv2 directory
logfile=logs/sc_serv.log
w3clog=logs/sc_w3c.log
banfile=control/sc_serv.ban
ripfile=control/sc_serv.rip
; the following will force any sources to be public which
; allows us to then connect and be listed on the YP
publicserver=always
; password used by sc_trans or the Winamp DSP plug-in
; NOTE: remember to change this to something else
password=YourPassword
; password used for accessing the administation pages
; NOTE: remember to change this to something else
adminpassword=YourAdminPassword
portbase=8000
requirestreamconfigs=1
streamid_1=1
streampath_1=http://your_address:8000
「your_address」のところはそのサーバーのドメインやパブリックIPアドレスにするそうです。
YourPasswordや、YourAdminPasswordは好きなパスワードにしてください。
そこまでが終わったら
./sc_serv &
として起動し、AmazonEC2のダッシュボードからネットワークの設定に入って行き、8000番と8001番ポートを開けてブラウザからアクセスし、起動を確認しましょう。
☆icecastのインストール
こちらはaptが使えるから簡単です。
sudo apt install icecast2
でインストールしましょう。
インストールを始めると画面が変わり、icecastの設定をしますか?と聞かれるのでNoを選択します。
インストールが終わると、etc フォルダに icecast2 ができてますので、/etc/icecast2/icecast.xmlを編集します。
sudo nano /etc/icecast2/icecast.xml
内容で以下の部分を見つけて、
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
8000のところをshoutcastと被らない番号にしてください。
続いて以下の部分も探して、
<authentication>
<!-- Sources log in with username \'source\' -->
<source-password>12345678</source-password>
<!-- Relays log in with username \'relay\' -->
<relay-password>12345</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>admin123</admin-password>
</authentication>
source-passwordには配信時にサーバーに接続するためのパスワード、
relay-passwordはよくわかんないけど別のサーバーに音をリレーさせる機能なのかな?わたしは使わないから適当にしました。
admin-passwordには管理用パスワードを記載して保存しエディターを終了します。
起動するには以下を実行してください。
sudo systemctl start icecast2
PC起動時にicecastを起動したい場合は以下を
sudo systemctl enable icecast2
実際に起動して、設定したポート番号をブラウザから開いて確認してくださいね。
☆MediaMTXサーバー
続いて、VRChatでTopazPlayerやiwaSyncのオブジェクトから0.5秒くらいの低遅延でワールド配信できるサーバーをインストールします。
RTSPポート(TCP554,UDP8000,UDP8001)とRTMPポート(TCP1935)をAmazonEC2のダッシュボードからネットワークの設定に入って行き、開けておきます。
ffmpegが必要なのでインストールします。
sudo apt update && sudo apt install ffmpeg
次にMediaMTXをダウンロードします。
wget https://github.com/bluenviron/mediamtx/releases/download/v1.15.5/mediamtx_v1.15.5_linux_amd64.tar.gz
で、mediamtxのファイルをダウンロードし、
tar -xvzf mediamtx_v1.15.5_linux_amd64.tar.gz
で、解凍します。
次に、解凍した場所/mediamtx/mediamtx.ymlを開き、以下の行を探して修正します。
#overridePublisher: yes
overridePublisher: no
#rtspAddress: :8554
rtspAddress: :554
にして保存します。そして以下の順でターミナルにコマンドを打ち込んでください。
sudo su
mv 解凍した場所/mediamtx /usr/local/bin/mediamtx
mv 解凍した場所/mediamtx.yml /usr/local/etc/mediamtx.yml
touch /etc/systemd/system/mediamtx.service
nano /etc/systemd/system/mediamtx.service
mediamtx.service の中身を以下のように編集して保存します。
[Unit]
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/mediamtx /usr/local/etc/mediamtx.yml
[Install]
WantedBy=multi-user.target
/usr/local/bin/mediamtxのファイルにはパーミッション755等の実行権限を付与しておいてください。
あとはサービス起動するだけです。
sudo systemctl start mediamtx
起動時に自動的に開始したい場合は
sudo systemctl enable mediamtx
配信はOBSから

streamkey は適当に入力してもOKだそうです。(VRC側と合わせてね)
VRChatのTopazPlayerやiwaSyncでは
rtspt://IPADDRESS/STREAMKEY
で、ワールド内に配信できます。
コメント