
Sheave
Rust製のRTMPサーバおよびクライアントです。
使い方
-
サーバ
このリポジトリをそのまま使う場合
git clone https://github.com/t-matsudate/sheave cd ./sheave/sheave-server cargo run -- --topic-database-url sqlite::memory: --listeners rtmp://127.0.0.1:1935/ondemand
Dockerイメージとして使う場合
docker run --rm -it -e TOPIC_DATABASE_URL=sqlite::memory: -e LISTENERS=rtmp://127.0.0.1:1935/ondemand tmatsudate/sheave-server:latest
-
クライアント(発行者モード)
このリポジトリをそのまま使う場合
git clone https://github.com/t-matsudate/sheave cd ./sheave/sheave-client cargo run -- --client-type publisher -f flv -i filename.flv -f flv rtmp://127.0.0.1:1935/ondemand/publishing-name
-
クライアント(購読者モード)
このリポジトリをそのまま使う場合
git clone https://github.com/t-matsudate/sheave cd ./sheave/sheave-client cargo run -- --client-type subscriber -f flv -o filename.flv -f flv rtmp://127.0.0.1:1935/ondemand/stream-name
ドキュメント(英語)
-
コアライブラリ
-
サーバ
-
クライアント
目標
RTMPツールの個人(あるいは小規模)利用に第三の選択肢を提供します。
- RTMPツールとして共通している機能を無料で利用できるようにします。
- オープンソースとして公開し、独自に拡張できるようにします。
- どのように小規模なユースケースでも容易に利用できるようにします。(例: VPS上)
機能
-
実装済み
- RTMPハンドシェイクによる相互確認
- 通信に必要な設定情報の交換
- 音声/映像データの蓄積/公開
- ロガーによる詳細出力
- 音声/映像データの購読
-
実装中
- 音声/動画コーデックへの対応
ライセンス
-
MIT ライセンス
-
条件
- ライセンス名と著作権者名の表記
-
許可事項
- 商用利用
- 再配布
- 独自の変更
- 個人利用
-
制限事項
- 作者は第三者による使用に関して責任を負いません。
- 同様に、いかなる保証も提供しません。