6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PeerCastをVPSにインストールして視聴する方法

Last updated at Posted at 2015-04-24

この記事は

PeerCastという動画配信プログラムをどこでも使えるようにするため、安価なVPSに乗っけてしまおうという話です。
以下の記事に触発されてやってみたメモです。
2番煎じですので、以下の記事をみてやっていただく方がいいです。

VPSを利用してPeerCast視聴環境をつくる
http://blog.contee.net/blog/2014/12/08/conoha-pecalis/

上の記事と異なる点は、GUI環境を一切かませず、CUIだけで完結をさせています。

前置き

PeerCastの簡単な仕組みですが、配信者も視聴者もPeerCastというプログラムをインストールして、P2Pのノードになります。そして、「配信→視聴者→視聴者」のようにリレーをしながらデータ転送を行います。(※この時帯域が大きい人などは、複数のノードに対してリレーを行う場合もあります。)したがってリレーの上流の人が切れると下の視聴者は、再接続を行います。
すごく厨二心をくすぐる仕組みですが、視聴者もポート開放を行う必要があるので、どこでも視聴環境を整えられるわけではありません。例えば会社の昼休みにちょっと見たい時などにはポート開放なんて不可能なので見れません。そんな時にVPS上にPeerCastを置いておけば、見れるようになります!

詳しくはWikiへ

http://ja.wikipedia.org/wiki/PeerCast

環境

  • さくらVPS 1Gプラン
  • CentOS 7

手順

  1. ポート開放
  2. monoのインストール(.Net Frameworkの移植)
    2. PeerCastStationのインストール
  3. 外部から接続できるように設定変更
  4. 動作確認

0. ポート開放

CentOS 7でのポート開放は、これまでのiptablesとやり方が異なるので、ざっくりメモ程度に。
firewalldの有効化
# systemctl enable firewalld
peercastのサービス定義
# vi /usr/lib/firewalld/service/peercast.xml

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の接続許可を以下のように変更してください。
スクリーンショット 2015-04-25 2.24.23.png
スクショでは見えませんが、ポート開放確認ボタンもあるので、一度ポチっとテストしておくと良いです。

また、少し下にある、上り帯域計測も行ってください。
スクリーンショット 2015-04-25 2.24.36.png

特に保存ボタンはないので、完了です。
最後に、http://[vpsのip]:7144に接続をして、認証画面が出て来れば成功です。
上のポート一覧に載っている認証IDとパスワードを使用してログインをしてみてください。

4. 動作確認

ここで一旦動作確認をしましょう。
PeerCastで配信されている放送はYellowPage(以下YP)と呼ばれるページに載っています。
いくつかあるのですが、

TP
http://temp.orz.hm/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での配信方法についてまとめたいと思います。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?