Skip to content

Commit

Permalink
Merge branch 'release/19.09.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
voluntas committed Sep 25, 2019
2 parents 6d5d0f8 + f73e5d0 commit 684f813
Show file tree
Hide file tree
Showing 8 changed files with 97 additions and 44 deletions.
8 changes: 8 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@

## develop

## 19.09.2

- [UPDATE] libwebrtc M78 コミットポジションを 5 にする
- libwebrtc のハッシュは dfa0b46737036e347acbd3b47f0f58ff6c8350c8
- @voluntas
- [FIX] iceServers が json プロパティかつ array の場合のみ ice_servers_ にセットするよう修正する
- @kdxu

## 19.09.1

- [ADD] Jetson Nano のハードウェアエンコーダを利用する機能を実装
Expand Down
33 changes: 30 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ Jetson Nano に搭載されている H.264 ハードウェアエンコーダー

## OpenMomo プロジェクトについて

OpenMomo は WebRTC Native Client Momo をオープンソースとして公開し、
継続的に開発を行うことで、ブラウザやスマートフォン以外からの WebRTC 利用を知ってもらうプロジェクトです
OpenMomo は WebRTC Native Client Momo をオープンソースとして公開し継続的に開発を行っていくプロジェクトです。
ブラウザやスマートフォン以外からの WebRTC をいろいろな用途で使ってもらえればと思っています

詳細については下記をご確認ください。

Expand All @@ -40,7 +40,12 @@ Momo はオープンソースソフトウェアですが、開発については

## バイナリ提供について

Raspberry Pi 向けのバイナリのみ提供を行っています。今後は macOS や Jetson Nano 向けのバイナリ配布も行っていく予定です。
4 種類のバイナリを配布しています。

- Raspberry Buster ARMv7
- Raspberry Buster ARMv6
- Jetson Nano ARMv8
- macOS 10.14 x86_64

## 動作環境

Expand Down Expand Up @@ -139,8 +144,30 @@ H.264 ハードウェアエンコーダ **のみ** を利用している Momo
- [ラズパイ\+momoでWebRTCで送信するときにマイクの代わりに音声ファイルを使用する \- Qiita](https://qiita.com/tetsu_koba/items/b887c1a0be9f26b795f2)
- [ラズパイのmomoでステレオ音声でWebRTCで配信する \- Qiita](https://qiita.com/tetsu_koba/items/6c07129caa5a08d5d172)

## Momo についての電子書籍

Momo のコア開発者である @tnoho が書いた Momo のノウハウが沢山詰まった本が販売されています。

[WebRTCをブラウザ外で使ってブラウザでできることを増やしてみませんか?\(電子版\) \- でんでんらぼ \- BOOTH](https://tnoho.booth.pm/items/1572872)

## Windows 版について

Windows 版 Momo をビルドするツールを販売しております。興味のある方は以下をご確認ください。

[Windows 版 WebRTC Native Client Momo](https://gist.github.com/voluntas/7af1596557121796123ac7dee9e3f5a4)

## カスタマイズなど

OSS にて公開可能でさらに弊社が Momo に組み込んでも良いと思える機能開発であれば、お仕事としてお受けすることが可能です。

非公開のカスタマイズは時雨堂がお仕事としてお受けする事はできません。ただし Momo の開発を仕事として受けることが可能なコミッターを紹介することが可能です。

まずは momo at shiguredo.jp までお問い合わせください。

- @tnoho
- Momo のコアコミッターです
- @melpon
- Momo のビルド全般のリードコミッターです
- @kdxu
- Momo の Ayame 機能のリードコミッターです
- [WebRTC Signaling Server Ayame](https://github.com/OpenAyame/ayame) のコアコミッターです
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 各種ライブラリのバージョン情報
# 項目を変更してビルドすれば各環境へ反映される(ように作る)
MOMO_VERSION=19.09.1
MOMO_VERSION=19.09.2
WEBRTC_VERSION=78
WEBRTC_COMMIT=68c715dc01cd8cd0ad2726453e7376b5f353fcd1
WEBRTC_COMMIT=dfa0b46737036e347acbd3b47f0f58ff6c8350c8
BOOST_VERSION=1.71.0
JSON_VERSION=3.7.0
CLI11_VERSION=1.8.0
Expand Down
4 changes: 4 additions & 0 deletions doc/USE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

[USE_RASPBERRY_PI.md](USE_RASPBERRY_PI.md) をお読みください。

## NVIDIA Jetson Nano で Momo を使ってみる

[USE_JETSON_NANO.md](USE_JETSON_NANO.md) をお読みください。

## Mac で Momo を使ってみる

[USE_MAC.md](USE_MAC.md) をお読みください。
Expand Down
27 changes: 5 additions & 22 deletions doc/USE_AYAME.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,13 @@ https://ayame-lite.shiguredo.jp/beta
Ayame Lite はサインアップせずにそのままシグナリングサーバだけでも利用可能です。

```shell
$ ./momo --no-audio ayame wss://example.com/ws open-momo
$ ./momo --no-audio ayame wss://ayame-lite.shiguredo.jp/signaling open-momo
```

Ayame SDK のサンプルを起動する

```shell
$ git clone git@github.com:OpenAyame/ayame-web-sdk-samples.git
$ cd ayame-web-sdk-samples
$ yarn install
$ yarn serve
```

URL の引数にルーム ID を指定してアクセスします。
Ayame SDK のオンラインサンプルを利用します。 URL の引数にルーム ID を指定してアクセスします。

```
http://localhost:3000/recvonly.html?roomId=open-momo
https://openayame.github.io/ayame-web-sdk-samples/recvonly.html?roomId=open-momo
```


Expand All @@ -52,17 +43,9 @@ $ ./momo --no-audio ayame \
--key fW7LX2hv4k9AnB-S69L1HpaApcXYSp-mrxBhJgqulEHAr7BK
```

Ayame SDK のサンプルを起動する
Ayame SDK のオンラインサンプルを利用します。 URL の引数にルーム ID とシグナリングキーを指定してアクセスします。

```shell
$ git clone git@github.com:OpenAyame/ayame-web-sdk-samples.git
$ cd ayame-web-sdk-samples
$ yarn install
$ yarn serve
```
https://openayame.github.io/ayame-web-sdk-samples/recvonly.html?roomId=shiguredo@open-momo&key=fW7LX2hv4k9AnB-S69L1HpaApcXYSp-mrxBhJgqulEHAr7BK
URL の引数にルーム ID とシグナリングキーを指定してアクセスします。

```
http://localhost:3000/recvonly.html?roomId=shiguredo@ayame-lite&key=fW7LX2hv4k9AnB-S69L1HpaApcXYSp-mrxBhJgqulEHAr7BK
```
24 changes: 24 additions & 0 deletions doc/USE_JETSON_NANO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Jetson Nano で Momo を使ってみる

## Jetson Nano を購入する

**スイッチサイエンスからの購入をおすすめします**

[Jetson Nano 開発者キット \- スイッチサイエンス](https://www.switch-science.com/catalog/5433/)

## 4K@30 出るカメラの購入する

実際に検証して 4K@30 の出力動作確認が取れているカメラです。

- [高解像度 4 18K カメラモジュール 3840 × 2160 ソニー IMX317 Mjpeg 30fps ミニ Usb ウェブカメラ Web カメラ](https://ja.aliexpress.com/item/32999909513.html)

以下は上のタイプのケースありやレンズが色々選べるタイプです。

- https://ja.aliexpress.com/item/33013268769.html
- https://ja.aliexpress.com/item/33016603918.html

色々 4K@30 が出せるカメラを試してきましたが、このカメラが一番安定しています。

## Jetson Nano 向けのバイナリは以下にて提供しています

https://github.com/shiguredo/momo/releases にて最新版のバイナリをダウンロードしてください。
6 changes: 3 additions & 3 deletions doc/USE_MAC.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Mac で Momo を使ってみる
# macOS で Momo を使ってみる

Mac で Momo を利用する場合は自力でビルドする必要があります。
## macOS 向けのバイナリは以下にて提供しています

まずは [BUILD_MACOS.md](BUILD_MACOS.md) を読んでビルドしてみてください
https://github.com/shiguredo/momo/releases にて最新版のバイナリをダウンロードしてください

## 動かしてみる

Expand Down
35 changes: 21 additions & 14 deletions src/ayame/ayame_websocket_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,9 +234,11 @@ void AyameWebsocketClient::doSendPong() {
}

void AyameWebsocketClient::createPeerConnection() {
// ここで ice_servers_ が空なのはおかしい
if (ice_servers_.empty()) {
return;
}

webrtc::PeerConnectionInterface::RTCConfiguration rtc_config;

rtc_config.servers = ice_servers_;
Expand Down Expand Up @@ -288,23 +290,28 @@ void AyameWebsocketClient::onRead(boost::system::error_code ec,
if (type == "accept") {
if (!connection_) {
// 返却されてきた iceServers を セットする
try {
if (json_message.contains("iceServers")) {
auto jservers = json_message["iceServers"];
for (auto jserver : jservers) {
webrtc::PeerConnectionInterface::IceServer ice_server;
if (jserver.contains("username")) {
ice_server.username = jserver["username"];
}
if (jserver.contains("credential")) {
ice_server.password = jserver["credential"];
if (jservers.is_array()) {
for (auto jserver : jservers) {
webrtc::PeerConnectionInterface::IceServer ice_server;
if (jserver.contains("username")) {
ice_server.username = jserver["username"];
}
if (jserver.contains("credential")) {
ice_server.password = jserver["credential"];
}
auto jurls = jserver["urls"];
for (const std::string url : jurls) {
ice_server.urls.push_back(url);
RTC_LOG(LS_INFO)
<< __FUNCTION__ << ": iceserver.url=" << std::string(url);
}
ice_servers_.push_back(ice_server);
}
auto jurls = jserver["urls"];
for (const std::string url : jurls) {
ice_server.urls.push_back(url);
}
ice_servers_.push_back(ice_server);
}
} catch (json::type_error& e) {
}
if (ice_servers_.empty()) {
// accept 時に iceServers が返却されてこなかった場合 google の stun server を用いる
webrtc::PeerConnectionInterface::IceServer ice_server;
ice_server.uri = "stun:stun.l.google.com:19302";
Expand Down

0 comments on commit 684f813

Please sign in to comment.