Skip to content

plonk/peercast-yt

Repository files navigation

PeerCast YT

PeerCast のフォークです。

ブラウザインターフェイス

ブラウザインターフェイスは、YPブラウザ、動画プレーヤー、したらば掲示板 ビューワを実装しており、ユーザーはウェブブラウザさえあれば ローカル/リ モートを問わず PeerCast が視聴できます。

多種のエンコーダーに対応

多種の動画フォーマットに対応

  • 従来のフォーマットに加え、FLV、MKV、WebM の配信に対応しています。

その他

  • 継続パケット機能により、キーフレーム からの再生ができます。
  • PeerCastStation 互換の JSON RPC インターフェイス。 →JSON RPC API (epcypginger などで使えます)
  • 公開ディレクトリ機能。チャンネルリストやストリームをWebに公開できます。
  • HTML UI をメッセージカタログ化。各国語版で機能に違いがないようにしました。
  • Ajax による画面更新。

バイナリのダウンロード

https://github.com/plonk/peercast-yt/releases/ に各プラットフォーム用 のバイナリがあります。

また、Docker HubにDockerイメージがあります。

AMD64版
https://hub.docker.com/r/plonk/peercast-yt
ARM版 (Raspbian用)
https://hub.docker.com/r/plonk/peercast-yt-arm

Linuxでのビルド

必要なもの

コンパイラは、GCC 4.9 以降あるいは Clang 3.4 以降などの C++11 に準拠し たものを使ってください。

また、ビルド時に HTML ファイルの生成のために Ruby を必要とします。また、 実行時(CGIスクリプト)に Python3 が必要です。

手順

ui/linux ディレクトリに入って make したあと、sudo make install で /usr/local/ 以下にインストールできます。

また、ui/linux/tests ディレクトリで make すると一連の単体テストを実行する test-all コマンドが作成されます。

実行

peercast コマンドを起動したあと、ウェブブラウザで http://localhost:7144/ を開くと操作できます。なお、設定ファイル peercast.ini~/.config/peercast/ ディレクトリに作られます。

MSYS2でのビルド

MSYS2 を使って Windows (MinGW)版をビルドできます。ui/mingui ディレク トリでmake してください。

また、ui/mingui/tests ディレクトリで make すると一連の単体テストを 実行するファイル test-all.exe が作成されます。

掲示板ビューワなどの機能を動かすには peercast.exe が存在するディレク トリから見て python\python.exe に Tiny Python が配置されている必要 があります。

ヒント

MSYS2 には MSYS、MinGW 32ビット、MinGW 64ビットの3つの開発環境があり、 それぞれの環境で異なるコンパイラが使用されます。

32ビット版のpeercast.exeを作成したい場合は MinGW 32-bit のターミナ ルから、64ビット版の場合は MinGW 64-bit のターミナルから作業します。 MSYS ターミナルからは正常に動く peercast バイナリが作成できません。

開発ツールチェイン、Ruby、Google Testなどの必要なソフトウェアは pacman経由でインストールします。

パッケージ名は、64ビット版のパッケージには mingw-w64-x86_64- のプレ フィックスが、32ビット版は mingw-w64-i686- のプレフィックスが付いて います。

なお、パッケージのダウンロードに10秒以上かかるとエラーになる不具合に遭 遇した場合は pacman--disable-download-timeout 引数を追加します。

RTMP fetchサポート

RTMP をサポートするストリーミングサーバーからストリームを取得して配信 チャンネルを作成したい場合、PeerCast YT が RTMP fetch サポート付きでビ ルドされている必要があります。

サポートをオンにするには Makefile の先頭で WITH_RTMP 変数の値を yes にしてビルドします。librtmp をリンクする必要があるので、インス トールしておいてください。

MinGW の場合は rtmpdump-git パッケージを以下のように(64ビットの場合)インストール してください。

pacman -S mingw-w64-x86_64-rtmpdump-git