Skip to content

WebRTCでカメラ映像(H.264)を複数人に配信するソフトウェアです。Raspberry Pi 3, 4のH.264 ハードウェアエンコーダに対応。

License

chujohiroto/WebRTCBroadcaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebRTCBroadcaster

WebRTCでカメラ映像(H.264)を複数人に配信するソフトウェアです。Raspberry Pi 3, 4のH.264 ハードウェアエンコーダに対応。

Windows Subsystem for Linuxでのテスト映像での動作は確認済み。未確認ですがWindows, Macでもおそらく動作します。

複数人で一つのカメラ映像を低遅延で閲覧することに特化したシンプルな設計です。

機能

  • カメラデバイスから映像を配信
  • テスト映像を配信
  • HTTPで動く簡易的なWebRTCシグナリングサーバー
  • 簡易閲覧ページ
  • 認証Webhook
  • JPEGスクリーンショットを取得できるHTTP API
  • H264に限定したエンコード

認証Webhookに関しては時雨堂様のAyameを参考にしました。

一部利用しているコードに関してはライセンス表記させていただいています。この場を借りてお礼申し上げます。

WebhookのAPIフォーマットについては異なります。また開発元は異なりますので時雨堂様に問い合わせしないようにお願いします。

実行方法

 ./WebRTCBroadcaster -h
Usage of ./WebRTCBroadcaster:
  -api
        画像、動画取得APIを有効にする (default true)
  -bitrate int
        エンコードする映像ビットレート、帯域 (default 1000000) = 1Mbps
  -dummy
        カメラデバイスを使わず、ダミー映像で配信する
  -framerate float
        フレームレート (default 30)
  -height int
        カメラデバイスから取得する解像度の高さ (default 1080)
  -page
        テストで閲覧するためのWebページを表示する (default true)
  -port int
        シグナリングやテストで閲覧するためのWebページを表示するポート (default 8080)
  -webhook string
        認証WebHookのURL
  -width int
        カメラデバイスから取得する解像度の幅 (default 1920)

ダミー映像での実行例

./WebRTCBroadcaster -dummy

カメラから映像取得、認証Webhookありでの実行例

./WebRTCBroadcaster -webhook http://localhost:8888/auth

1080p 60FPS 5Mbpsで配信したい場合の実行例

./WebRTCBroadcaster -framerate 60 -bitrate 5000000

ストリーミング閲覧方法 (ポートに指定がなく、-pageがfalseと指定されていない場合)

http://localhost:8080/

画像閲覧方法 (ポートに指定がなく、-apiがfalseと指定されていない場合)

http://localhost:8080/api/photo

ビルド方法

Raspberry Piでハードウェアエンコーダを使用する場合は、本体に内臓されている mmal が必要です。

ハードウェアエンコーダが必要な場合は、Rasberry Piでビルドしてください。

Raspberry Pi

sudo apt install pkg-config

go build

./WebRTCBroadcaster

Ubuntu

sudo apt install pkg-config

sudo apt install libx264-dev

go build

./WebRTCBroadcaster

認証WebhookのAPIフォーマット

記述中です...

対応予定の機能

  • 録画HTTP API
  • カスタムできる閲覧ページのテンプレート
  • Linuxサービス化対応
  • 簡易なWeb SDK
  • 閲覧状況を確認できるダッシュボード、HTTP API
  • Rasberry Pi 3, 4のビルド済みバイナリの提供

About

WebRTCでカメラ映像(H.264)を複数人に配信するソフトウェアです。Raspberry Pi 3, 4のH.264 ハードウェアエンコーダに対応。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published