Skip to content

Releases: plonk/peercast-yt

PeerCast YT50

08 Mar 07:40
Compare
Choose a tag to compare

What's Changed

  • 一部のコンパイラでビルドができない問題を修正 by @amiami5 in #127
  • pipe: URLで外部コマンド(ffmpegなど)を立ち上げてチャンネルソースにできるようにしました。
  • 同一LAN内の別ホストが立てた配信が視聴できなかったのを直しました。(そのようなホストと通信するためにはほとんどの場合ホストのプライベートIPに接続する必要があるがtip=パラメータだけではグローバルIPしかわからないのでルートサーバーに教えてもらう必要がある)
  • 複数のYPのポート0配信が視聴できるようにしました。リレーしているチャンネルごとにどのYPに掲載されているかの情報を持つようにしました。
  • http に加えて https で HTML UI に接続できるように設定できるようにしました。
  • リレーが制限を超えて出すぎてしまう問題を直しました。3980a78
  • 永続クッキーリストを読み込むときにクッキー期限の設定が「セッション」にリセットされていたのを修正。 ff79c04

pipe URLについて

「外部ソース」を元にチャンネルを立てるとき、http URLや rtmp URLを指定しますが、これを拡張して URL のスキーム部分に pipe と指定するとコロンの後の部分をコマンドラインと解釈して、コマンドを実行し、このコマンドの標準出力への出力を動画・音声データとして解釈してチャンネルを立てます。

非常に具体的な例を挙げるとLAN内で RTSPサーバを動かしている ATOM Cam がある場合、次のように指定することでカメラの映像を元に配信を立てることができます。

pipe:ffmpeg -nostdin -loglevel fatal -i rtsp://[カメラのIPアドレス]:8554/unicast -t 13:0:0 -vcodec copy -f flv -

httpsでHTML UI に接続する

peercast.ini と同じディレクトリに server.crtserver.key の名前で証明書と秘密鍵を置いて、enableSSLServer フラグを有効にすれば、https で HTML UI に接続できるようになります。(ポート番号は http と同じ)

「コンソール」の ssl コマンドでディレクトリが確認できます。(flag set enableSSLServer true でフラグが有効にできます。)

2024-03-05-072753_625x578_scrot

openssl コマンドを使って自己署名証明書 server.crt と server.key を作るには例えば次のようにできます。

openssl req -x509 -nodes -newkey rsa:2048 -keyout server.key -out server.crt -days 365

New Contributors

Full Changelog: v0.4.9...v0.5.0

PeerCast YT49

11 Feb 12:53
Compare
Choose a tag to compare

主な変更点

  • 不正なホスト情報(0.0.0.0:0/0.0.0.0:0 )が入力されると「リレーツリー」に循環が生じてJSON RPCの出力にある複数の木に同じホスト情報が載る挙動を修正。 9b803e6 ae7afe1
  • RTMPサーバーに音声のないストリームが入力されると間違ったFLVヘッダーが出力されるために再生できないチャンネルになってしまっていたのを修正。 a8a9b86
  • 少なくとも RasPi 上で名前引きが並列に行われると失敗を誘発するので順番に行うようにした。 e6c0623
  • p@ に掲載されたプッシュ配信が見られないのを直した。 p@でプッシュ配信を立てると「IPアドレス:0」の形でTIPが載るが、ポート番号のない「IPアドレス」の形の場合と区別できなかったのでデフォルトのポート番号である 7144 が指定されたかのように、つまりチャンネルにはポートの空いたトラッカーがあるかのように振る舞っていた。この挙動を修正した。(設定でYPとしてp@を指定している場合にp@のプッシュ配信が見られるようになったということです。) 49af7e6
  • RasPi などのLinux用に「サーバーサイドのプレーヤーで再生する」機能を付けました。チャンネルリストでチャンネルをクリックすると、視聴ページに移動するかわりに mpv などのプレーヤーが開きます。Windows 版には昔からあった、サーバーがプレイリストをシステムに開かせる仕組みがLinuxでも動くようにしたものです。Linuxの場合 xdg-open コマンドで .ram 拡張子のプレイリストを開きます。システムの設定によって、mpv などのプレーヤーが起動されます。RasPi ではチャンネル再生ページのvideo要素の動作に問題があったことがこの変更の動機です。チャンネルリストページの設定から、有効にできます。
  • Linuxで通知を notify-send コマンドを呼び出してシステムに送る機能を付けました。peercast コマンドのオプションとして --enable-notify-send を指定すると有効になります。(RasPi の場合、デフォルトではデスクトップ環境に通知デーモンが動いていませんので、notification-daemon パッケージをインストールして、~/.config/lxsession/LXDE-pi/autostart に @/usr/lib/notification-daemon/notification-daemon の行を追加するのがおすすめです。)
  • 「コンソール」機能を付けました。対話的テキストベースインターフェースです。

コンソール・コマンド

date 日付日時の表示。
echo 引数をエコーバックする。
expr HTMLテンプレート言語の式を実行する。例えば expr servMgr で servMgr 変数の内容をJSONで表示します。
get HTTP GET メソッドでリソースをダウンロードして表示。YP の index.txt のテストに使えるんじゃないでしょうか。
helo PCPハンドシェイクをリモートホストと行う。リモートホストで peercast が動作しているか、ポートが空いているかの確認に使えます。
help コマンド一覧を表示。
log 新たに追加されるログを表示しつづけます。
notify 通知を行う。通知システムのテストに。
nslookup DNS名前引き。逆引きに。
pid プロセスIDの表示。
shutdown peercastプロセスの終了。
sleep 指定した秒数後にコマンドが終了します^^;

Windows版バイナリについて

Windows PC が壊れたので提供できません。

Full Changelog: v0.4.8...v0.4.9

PeerCast YT48

30 Dec 04:41
Compare
Choose a tag to compare

主な変更点

  • YPサーバーがリダイレクト応答を返した場合に対応しました。(p-at.netのHTTP URL)(bea5438, f24beac)
  • jQuery を 3.5.2 にバージョンアップしました。
  • JSON RPC経由で長い名前のチャンネルを作ったときに、チャンネル一覧取得 JSON RPC メソッドが正常に応答を返さなくなっていたのを直しました。
  • HTML UIのいろいろな不具合の修正。(0baf713, 5430f1e, e03096c, 6d22a22, 4e31f29)

Windows版バイナリについて

Windows PC が壊れたので提供できません。

Full Changelog: v0.4.7...v0.4.8

PeerCast YT47

25 Mar 11:17
Compare
Choose a tag to compare

主な変更点

  • チャンネルフィルターの正規表現が(PeCaRecorderに合わせて)デフォルトで大文字・小文字を区別しないようにしました。これに伴って、個々のフィルター設定に「大文字・小文字を区別しない」のオプションを追加しました。
    image
  • Windows版で日本語を含むパスにインストールすると起動できなかった問題を修正しました。
  • チャンネル詳細にASCII文字のシングルクオートを含むチャンネル(Assassin's Creed!)があるとチャンネル一覧が表示できなくなっていたのを修正しました。

Full Changelog: v0.4.6...v0.4.7

PeerCast YT46

PeerCast YT45

04 Oct 16:12
Compare
Choose a tag to compare

主な変更点

  • チャンネル(YPブラウザ)タブの機能を強化しました。 by @plonk in #117

色分けできるチャンネル一覧
色分けできるチャンネル一覧

表示するカラムを選択
image

フィルターを作成
image

PecaRecorderのフィルター設定をインポート
image

Full Changelog: v0.4.4...v0.4.5

PeerCast YT44

02 Aug 16:44
Compare
Choose a tag to compare

主な変更点

Full Changelog: v0.4.3...v0.4.4

YT44 ベータ版 RC1

31 Jul 17:21
Compare
Choose a tag to compare
YT44 ベータ版 RC1 Pre-release
Pre-release

What's Changed

  • 配信中にトラッカーホストをBANする。 by @plonk in #107

Full Changelog: v0.4.3...v0.4.4-rc1

PeerCast YT43

03 Jan 12:31
Compare
Choose a tag to compare

UIの改良

ダークテーマ追加。
image

チャットのメッセージ入力欄から Shift + Enter で投稿できるようにした。
image

ビデオコントロールでミュート解除された時に解除ボタンを消すようにした。 a56b6ce

IDLEチャンネルの消去をするとき、全部消えてからページのリロードが起こるようにした。 831673e 3527cc4

視聴ページで(ダイレクト数が足りない等で)503 エラーになったとき、ずっとロード中のような表示になっていたが、ダイアログが出てリロードが選べるようにした。 333ca1b b8b423f
image

チャンネル情報ページに関連する接続を表示。 25f7315

バグ修正

チャンネル情報ページを開いているとデッドロックが起こることがあったのを修正。 74f4e86

Dateヘッダーに表示する日付が正しくなかったのを修正。Oct Nov が逆だった。 83b374c

機能の削除

ブラウザ通知のコードを削除。 36aca0c
(1.HTMLテンプレートエンジンを変更した結果、変数の読み出しに処理を引っ掛けられなくなった。2.そもそも便利な場面が少なそう。3.リモートではブラウザのセキュリティに引っかかって利用できない。)

PeerCast YT42

30 Oct 04:28
Compare
Choose a tag to compare

変更点

・https で提供されている index.txt が取得できるようになりました。(P@のため)
・P@のプリセットURLを https にしました。 0936422

ソケット周りのおかしな挙動を直した

ClientSocket::connect を呼び出した時に「対象のコンピュータに拒否された」ことが検出されないという挙動だった。Linux 版では最初のread/write で検出され、Windows版では5秒のタイムアウトが経過したあと TimeoutException 例外が上がる。後者の挙動は Winsock では ::connect 成功時は書き込み可が ::select で検出されるが「拒否」時は例外的条件が検出されるため。以前の WClientSocket の実装では例外的条件は ::select で見ていなかった。したがって、接続成功時には WClientSocket::connect からリターンするが、失敗時はタイムアウトになるまでリターンしなかった。