Releases: plonk/peercast-yt
PeerCast YT50
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.crt
と server.key
の名前で証明書と秘密鍵を置いて、enableSSLServer
フラグを有効にすれば、https で HTML UI に接続できるようになります。(ポート番号は http と同じ)
「コンソール」の ssl
コマンドでディレクトリが確認できます。(flag set enableSSLServer true
でフラグが有効にできます。)
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
主な変更点
- 不正なホスト情報(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
主な変更点
- 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
主な変更点
- チャンネルフィルターの正規表現が(PeCaRecorderに合わせて)デフォルトで大文字・小文字を区別しないようにしました。これに伴って、個々のフィルター設定に「大文字・小文字を区別しない」のオプションを追加しました。
- Windows版で日本語を含むパスにインストールすると起動できなかった問題を修正しました。
- チャンネル詳細にASCII文字のシングルクオートを含むチャンネル(Assassin's Creed!)があるとチャンネル一覧が表示できなくなっていたのを修正しました。
Full Changelog: v0.4.6...v0.4.7
PeerCast YT46
What's Changed
- ビルドにCMake が使えるようになりました。(by @tetsuyainfra in #118)
バグ修正
- (YPお知らせ項目など)チャンネルIDが等しいチャンネル項目が峻別できるようにした。
- チャンネル停止ボタンでページがリロードされなかったのを修正。
- Keepボタンでページがリロードされなかったのを修正。
- relays.htmlの自動リロードが間違ってたのを修正。
- 絵文字などJIS外の文字が送信できていなかったのを直した。
New Contributors
- @tetsuyainfra made their first contribution in #118
Full Changelog: v0.4.5...v0.4.6
PeerCast YT45
主な変更点
Full Changelog: v0.4.4...v0.4.5
PeerCast YT44
主な変更点
- 配信中にトラッカーホストをBANする機能を追加 by @plonk in #107
- ヘッドパケットの内容ダンプを表示するページが壊れていたのを直した。
- アクセントカラー機能を追加。
- ストリーム位置(32ビット符号なし)がオーバーフローしたときの処理を見直しました。
- 廃止されたYPを設定プリセットから削除しました。TPさんお疲れ様でした。
- チャット入力欄で半角「?」を含むメッセージが正しく投稿できなかったのを直した。
- チャンネル情報の編集ができなかったのを修正。
- チャンネルの接続一覧表示がおかしかったのを修正。
Full Changelog: v0.4.3...v0.4.4
YT44 ベータ版 RC1
PeerCast YT43
UIの改良
チャットのメッセージ入力欄から Shift + Enter で投稿できるようにした。
ビデオコントロールでミュート解除された時に解除ボタンを消すようにした。 a56b6ce
IDLEチャンネルの消去をするとき、全部消えてからページのリロードが起こるようにした。 831673e 3527cc4
視聴ページで(ダイレクト数が足りない等で)503 エラーになったとき、ずっとロード中のような表示になっていたが、ダイアログが出てリロードが選べるようにした。 333ca1b b8b423f
チャンネル情報ページに関連する接続を表示。 25f7315
バグ修正
チャンネル情報ページを開いているとデッドロックが起こることがあったのを修正。 74f4e86
Dateヘッダーに表示する日付が正しくなかったのを修正。Oct Nov が逆だった。 83b374c
機能の削除
ブラウザ通知のコードを削除。 36aca0c
(1.HTMLテンプレートエンジンを変更した結果、変数の読み出しに処理を引っ掛けられなくなった。2.そもそも便利な場面が少なそう。3.リモートではブラウザのセキュリティに引っかかって利用できない。)
PeerCast YT42
変更点
・https で提供されている index.txt が取得できるようになりました。(P@のため)
・P@のプリセットURLを https にしました。 0936422
ソケット周りのおかしな挙動を直した
ClientSocket::connect を呼び出した時に「対象のコンピュータに拒否された」ことが検出されないという挙動だった。Linux 版では最初のread/write で検出され、Windows版では5秒のタイムアウトが経過したあと TimeoutException 例外が上がる。後者の挙動は Winsock では ::connect 成功時は書き込み可が ::select で検出されるが「拒否」時は例外的条件が検出されるため。以前の WClientSocket の実装では例外的条件は ::select で見ていなかった。したがって、接続成功時には WClientSocket::connect からリターンするが、失敗時はタイムアウトになるまでリターンしなかった。