Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [1.2.0] - 2020-02-14

- Added: Adding AudioStreamer class
- Added: Adding the flag to select encoder
- Changed: Upgrading Unity version to 2019.3
- Changed: Upgrading HDRP to 7.1.7
- Changed: Upgrading input system to 1.0.0-preview.1
- Changed: Upgrading WebRTC to 1.1.0-preview
- Fixed: Display the mouse pointer in the correct position
- Fixed: Try downloading webserver from a known version if the current version doesn't exist

## [1.1.2] - 2019-09-20

- Fixed: Fix image links for Japanese documentation on Unity website

## [1.1.1] - 2019-09-14

- Fixed: Fix image links for documentation on Unity website
  • Loading branch information
Unity Technologies committed Feb 26, 2020
1 parent fa4dd7b commit f2be8ed
Show file tree
Hide file tree
Showing 86 changed files with 1,977 additions and 198 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@ All notable changes to com.unity.renderstreaming package will be documented in t
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.2.0] - 2020-02-14

- Added: Adding AudioStreamer class
- Added: Adding the flag to select encoder
- Changed: Upgrading Unity version to 2019.3
- Changed: Upgrading HDRP to 7.1.7
- Changed: Upgrading input system to 1.0.0-preview.1
- Changed: Upgrading WebRTC to 1.1.0-preview
- Fixed: Display the mouse pointer in the correct position
- Fixed: Try downloading webserver from a known version if the current version doesn't exist

## [1.1.2] - 2019-09-20

- Fixed: Fix image links for Japanese documentation on Unity website

## [1.1.1] - 2019-09-14

- Fixed: Fix image links for documentation on Unity website
Expand Down
20 changes: 20 additions & 0 deletions Documentation~/TableOfContents.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
* [Unity Render Streaming](index)
* Getting Started
* [Overview](en/overview)
* [Tutorial](en/tutorial)
* [Web Application](en/webapp)
* [Browser Input Process](en/input)
* [Configure Self-Signed Credentials for https](en/https)
* [Render Streaming Settings](en/class-renderstreaming)
* [FAQ](en/faq)
* 日本語
* [Unity Render Streaming](jp/index)
* 利用を開始する
* [概要](jp/overview)
* [チュートリアル](jp/tutorial)
* [Web アプリケーション](jp/webapp)
* [ブラウザー入力処理](jp/input)
* [HTTPSの証明書の設定](jp/https)
* [TURN サーバの設定](jp/turnserver)
* [Render Streaming 設定](jp/class-renderstreaming)
* [よくある質問](jp/faq)
27 changes: 27 additions & 0 deletions Documentation~/en/class-renderstreaming.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# The Render Streaming Class

**Render Streaming** includes the following features.

- Communication with signaling servers
- Streaming input from cameras
- Associating browser input with events

![Render Streaming Inspector](../images/renderstreaming_inspector.png)

## Properties

| Parameter | Description | Default |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| **URL Signaling** | Set the signaling server URL | http://localhost |
| **Ice Servers** | Set a list of STUN/TURN servers | |
| *Urls* | Set URLs of STUN/TURN servers | [stun:stun.l.google.com:19302\] |
| *Username* | The username to use when logging into the TURN server | |
| *Credencial* | The credential to use when logging into the TURN server | |
| *Credencial Type* | This attribute specifies what kind of `credential` is to be used when connecting to the TURN server | Password |
| **Interval** | Set the polling frequency (in seconds) to the signaling server | 5 |
| **Streaming Size** | The size of the frame buffer for the streaming | 1280, 720 |
| **Capture Camera** | Set the streaming camera | |
| **Hardware Encoder Support** | Enable the checkbox to make this video encoding replace values that use a [hardware encoder](../index.md#hardware-encoder) | Enabled |
| **Array Button Click Event** | Register browser button click events | |
| *Element Id* | Set an ID that is sent from browsers | |
| *Click* | Set button click event | |
70 changes: 70 additions & 0 deletions Documentation~/en/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# FAQ

## Errors

### Video stream not showing in browser

The browser version might be too old. Make sure that the latest version is installed.

### Web app doesn't run on Safari browser

Check the web server's [startup options](webserver.md). In **Safari** and **iOS Safari**, WebRTC features cannot be used with **http**. Instead, **https** must be used.

### Unity's initial startup fails

Confirm you're using a `Graphics API` and compare [requirements](https://docs.unity3d.com/Packages/com.unity.webrtc@latest/en/overview.html) of `com.unity.webrtc`.
Make sure you're using a graphics card that supports **Nvcodec**. Also confirm that the latest graphics driver version is installed. See also: `com.unity.webrtc` documentation.

### Web server fails to run

Make sure the port isn't being used by another service.

## Issues with the environment

### Which versions of Unity can be used?

It is available on Unity 2019.3.

### Which OS can be used?

Windows10 x64, Linux x64, MacOS. Support for UWP(Universal Windows Platform), mobile platform like Android and iOS will be provided later.

### Are there any hardware constraints?

The hardware code uses NVCodec, so an NVIDIA graphics card is required. See the NVIDIA [site](https://developer.nvidia.com/video-encode-decode-gpu-support-matrix) for information on graphics cards that support NVCodec.

### Which browsers are supported?

Any browser, as long as it supports WebRTC.

## Questions about features

### Is it possible to broadcast to multiple devices?

Yes. However, the more devices being transmitted to, the greater the burden on the transmitting device. For example, on a new desktop PC it's possible to transmit 720p video to about 5 devices, but anything more than that will require using an [SFU](https://webrtcglossary.com/sfu/) broadcast server.

### Is simulcast supported?

Currently, version 1.0 does not support simulcast.

### Can you broadcast the feed from multiple cameras?

Currently, version 1.0 cannot.

### How do you increase the video quality?

Video quality depends on the quality of the network.

### Is Realtime-Raytracing supported?

Currently, version 1.2 cannot.

## Questions about support

### Technical support from Unity can be gotten?

It is available to ask questions on the page of [Unity forum](https://forum.unity.com/forums/unity-render-streaming.413). Also please report on [Github Issues](https://github.com/Unity-Technologies/UnityRenderStreaming/issues) for reporting bugs or requesting features.

### Is it available to deploy Unity to cloud service like GCP as a rendering server?

Unity is not supported using for rendering server.
214 changes: 214 additions & 0 deletions Documentation~/en/https.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
# Configure Self-Signed Credentials for https

## Prerequisites

### Windows

### Chocolatey

Chocolatey is a package manager for Windows (like apt-get or yum but for Windows).
Link to install Chocolatey: [https://chocolatey.org/install](https://chocolatey.org/install)

### OpenSSL

OpenSSL is a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.
Installation:

```terminal
choco install openssl.light
```

## Step 1: Create a Private Key

Run the command:

```terminal
"C:\Program Files\OpenSSL\bin\openssl.exe" genrsa -des3 -out rootSSL.key 2048
```

Enter a Password:

```terminal
Enter pass phrase for rootSSL.key:
```

Verify the Password:

```terminal
Verifying - Enter pass phrase for rootSSL.key:
```

## Step 2: Create a Certificate File

Run the command:

```terminal
"C:\Program Files\OpenSSL\bin\openssl.exe" req -x509 -new -nodes -key rootSSL.key -sha256 -days 1024 -out rootSSL.pem
```

Enter the Password:

```terminal
Enter pass phrase for rootSSL.key:
```

Enter your Country's 2-Letter Code:

```terminal
Country Name (2 letter code) [AU]:CA
```

Enter the name of your state/province:

```terminal
State or Province Name (full name) [Some-State]:Quebec
```

Enter the name of your locality (city):

```terminal
Locality Name (eg, city) []:montreal
```

Enter the name of your organization:

```terminal
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Unity
```

Enter the name of your business unit within the organization:

```terminal
Organizational Unit Name (eg, section) []:Verticals
```

Enter your computer's `fully qualified domain name` or your name:

```terminal
Common Name (e.g. server FQDN or YOUR name) []:Tony
```

Enter your e-mail address:

```terminal
Email Address []:[email protected]
```

## Step 3: Get Windows to Trust the Certificate Authority (CA)

1. Search for and run `Microsoft Management Console (mmc.exe)`

![mmc.exe](../images/https_step3_01.png)

2. Go to `File > Add/Remove Snap-in...`

![Add/Remove Snap-in...](../images/https_step3_02.png)

3. Click on `Certificates` and then `Add >`

![Add/Remove Snap-in...](../images/https_step3_03.png)

4. Select `Computer Account` and then `Next >`

![Add/Remove Snap-in...](../images/https_step3_04.png)

5. Select `Local computer (the computer this console is running on)` and then `Finish`

![Add/Remove Snap-in...](../images/https_step3_05.png)

6. Select `OK` in the `Add or Remove Snap-ins` window

![Add/Remove Snap-in...](../images/https_step3_06.png)

7. Expand `Console Root > Certificates (Local Computer)` in the `Console1 - [Console Root]` window

![Add/Remove Snap-in...](../images/https_step3_07.png)

8. Select `Trusted Root Certification Authorities` then `Right-Click` on `Certificates` and select `All Tasks > Import...`

![Add/Remove Snap-in...](../images/https_step3_08.png)

9. Select `Next` in the `Certificate Import Wizard` window

![Add/Remove Snap-in...](../images/https_step3_09.png)

10. Browse to the location of the `rootSSL.pem` file created in [Step 2: Create a Certificate File](#Step-2:-Create-a-Certificate-File) and then select `Next`.

![Add/Remove Snap-in...](../images/https_step3_10.png)

11. Select `Place all certificates in the following store` and ensure that `Trusted Root Certification Authorities` is the value in the `Certificate store:` field, and then select `Next`.

![Add/Remove Snap-in...](../images/https_step3_11.png)

12. Select `Finish`.

![Add/Remove Snap-in...](../images/https_step3_12.png)

## Step 4: Create a Local Domain Site

1. Add `127.0.0.1 client-1.local` to your `C:\Windows\System32\drivers\etc\hosts` file.

```hosts
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 client-1.local
# End of section
```
## Step 5: Create a Private Key (`client-1.local.key`) and Certificate Request (`client-1.local.csr`) for the New Domain
Execute this command ensuring the following fields are the same as the ones you used in **Step 1: Create a Private Key**:
* C=CA (Country)
* ST=Quebec (State)
* L=montreal (Locale)
* O=Unity (Organization)
* OU=Verticals (Business Unit)
* CN=Tony (Name)
* email<span>Address=anthonyma@unity3d.</span>com (E-Mail)
```terminal
"C:\Program Files\OpenSSL\bin\openssl.exe" req -new -sha256 -nodes -out client-1.local.csr -newkey rsa:2048 -keyout client-1.local.key -subj "/C=CA/ST=Quebec/L=montreal/O=Unity/OU=Verticals/CN=Tony/[email protected]"
```

## Step 6: Issue the New Certificate (`client-1.local.crt`)

Execute the command:

```terminal
"C:\Program Files\OpenSSL\bin\openssl.exe" x509 -req -in client-1.local.csr -CA rootSSL.pem -CAkey rootSSL.key -CAcreateserial -out client-1.local.crt -days 500 -sha256 -extensions "authorityKeyIdentifier=keyid,issuer\n basicConstraints=CA:FALSE\n keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment\n subjectAltName=DNS:client-1.local"
```

Enter the password:

```terminal
Enter pass phrase for rootSSL.key:
```

## Step 7: Run the `webserver.exe`

Execute the command:

```terminal
.\webserver.exe -s -p 443 -k client-1.local.key -c client-1.local.crt
```
Loading

0 comments on commit f2be8ed

Please sign in to comment.