この記事は
PeerCastという動画配信プログラムをどこでも使えるようにするため、安価なVPSに乗っけてしまおうという話です。
以下の記事に触発されてやってみたメモです。
2番煎じですので、以下の記事をみてやっていただく方がいいです。
VPSを利用してPeerCast視聴環境をつくる
http://blog.contee.net/blog/2014/12/08/conoha-pecalis/
上の記事と異なる点は、GUI環境を一切かませず、CUIだけで完結をさせています。
前置き
PeerCastの簡単な仕組みですが、配信者も視聴者もPeerCastというプログラムをインストールして、P2Pのノードになります。そして、「配信→視聴者→視聴者」のようにリレーをしながらデータ転送を行います。(※この時帯域が大きい人などは、複数のノードに対してリレーを行う場合もあります。)したがってリレーの上流の人が切れると下の視聴者は、再接続を行います。
すごく厨二心をくすぐる仕組みですが、視聴者もポート開放を行う必要があるので、どこでも視聴環境を整えられるわけではありません。例えば会社の昼休みにちょっと見たい時などにはポート開放なんて不可能なので見れません。そんな時にVPS上にPeerCastを置いておけば、見れるようになります!
詳しくはWikiへ
環境
- さくらVPS 1Gプラン
- CentOS 7
手順
- ポート開放
- monoのインストール(.Net Frameworkの移植)
2. PeerCastStationのインストール - 外部から接続できるように設定変更
- 動作確認
0. ポート開放
CentOS 7でのポート開放は、これまでのiptablesとやり方が異なるので、ざっくりメモ程度に。
firewalldの有効化
# systemctl enable firewalld
peercastのサービス定義
# vi /usr/lib/firewalld/service/peercast.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>PeerCast</short>
<description>PeerCast</description>
<port protocol="tcp" port="7144"/>
</service>
zone設定の変更(zoneファイルは読み替えてください)
# vi /etc/firewalld/zones/public.xml
<service name="peercast"/>
これを追加
再起動して設定完了
# systemctl restart firewalld
1. monoのインストール(.Net Frameworkの移植)
こちらの記事内の内容を参考にしてインストール
関連:VPSを利用してPeerCast視聴環境をつくる
http://blog.contee.net/blog/2014/12/08/conoha-pecalis/
# cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/home:tpokorra:mono/CentOS_CentOS-7/home:tpokorra:mono.repo
# yum -y install mono-opt mono-opt-devel mono-libgdiplus-opt
# cd /opt/mono/etc/mono
# cp config __config
# vi config
<dllmap dll="gdiplus" target="/opt/mono/lib/libgdiplus.so" os="!windows"/>
<dllmap dll="gdiplus.dll" target="/opt/mono/lib/libgdiplus.so" os="!windows"/>
<dllmap dll="gdi32" target="/opt/mono/lib/libgdiplus.so" os="!windows"/>
<dllmap dll="gdi32.dll" target="/opt/mono/lib/libgdiplus.so" os="!windows"/>
2. PeerCastStationのインストール
PeerCastの本家はいつの間にか閉鎖されているようなので、PeerCastStationという後継ソフトを使います
PeerCastStation
http://www.pecastation.org/
$ cd
$ wget http://www.pecastation.org/files/PeerCastStation-1.8.0.zip
$ unzip PeerCastStation-1.8.0.zip
※バージョンは最新版で読み替えてください。
起動
適当にshellとかにすると良いと思います。
/opt/mono/env.sh && nohup /opt/mono/bin/mono ~/PeerCastStation-1.8.0/PeerCastStation.exe &
PeerCastStationはmonoで実行した場合、ブラウザUIをサポートしていますので、ローカルにインストールするような場合には、http://localhost:7144/
で管理画面へアクセスすることが可能です。
3. 外部から接続できるように設定変更
これで、http://[vpsのip]:7144にアクセスしても何も見れません。
PeerCastStationの設定を変更して、外部からアクセスを許可する必要があります。
が、CUI命なので、一旦sshでトンネルを掘ります。
$ ssh -L 7144:localhost:7144 hogehoge
さすれば、http://localhost:7144
で管理画面が開くはずです。
設定タブを開いて、WANの接続許可を以下のように変更してください。
スクショでは見えませんが、ポート開放確認ボタンもあるので、一度ポチっとテストしておくと良いです。
特に保存ボタンはないので、完了です。
最後に、http://[vpsのip]:7144に接続をして、認証画面が出て来れば成功です。
上のポート一覧に載っている認証IDとパスワードを使用してログインをしてみてください。
4. 動作確認
ここで一旦動作確認をしましょう。
PeerCastで配信されている放送はYellowPage(以下YP)と呼ばれるページに載っています。
いくつかあるのですが、
SP
http://bayonet.ddo.jp/sp/
この二つを抑えておけば、ほとんどです。
意気揚々と、Playボタンを押しても、404です。
このPlayボタンはlocalhostのPeerCastに接続するためうまくいきません。
なので、Playボタンを右クリックしてリンクをコピーし、localhostの部分をVPSのIPに書き換えてアクセスをすると、なにやら再生ファイル(asfかm3u)が落ちてくると思います。
このファイルをVLCPlayerで開くと再生が始まるはずです。
PeerCastStationの管理画面でリレータブを開くと、該当の配信が載っていると思います。
ここで、自分の下にぶら下がっている人を確認したりできます。
VPSの運営会社の方には悪いですが、回線が太くて安定して、PCを落とすことから開放されるため、リレーに最適とも言えます。
毎回書き換えるのはめんどくさいので、そのうちChromeExtensionを作ると思います。多分。
プログラミング配信したいなーニコニコは怖いなーPeerCastってまだいきてんのかなー?
から、謎な方向に調べた副産物です。
次はMacでの配信方法についてまとめたいと思います。