# 映像と音声の設定

## 概要

このドキュメントでは、Sora Unity SDK サンプル集を使用した映像および音声の設定手順を解説します。設定例を通じて、各種パラメーターの使い方を順番に説明します。

[Sora Unity SDK サンプル集](https://github.com/shiguredo/sora-unity-sdk/tree/master/SoraUnitySdkExamples)

### このドキュメントで確認できること

- 映像デバイスと音声デバイスの指定方法
- 映像の設定- Unity Camera を使ったゲームキャプチャの方法
  - 映像コーデックの指定方法
  - 映像コーデックパラメーターの指定方法
  - 映像ビットレート・フレームレートの指定方法
- 音声の設定- 音声デバイスの指定方法
  - Unity Audio Input を使った音声キャプチャの方法
  - 音声コーデックの指定方法
- 映像や音声を送らない方法
- 音声ストリーミング機能の言語コードを指定する

## 映像デバイスと音声デバイスの指定方法

サンプル集では映像デバイスと音声デバイスを指定することができます。

デバイスを指定しない場合、実行環境がもつデフォルトのカメラとマイクを使用します。

指定する場合は `DeviceName` または `UniqueName` を指定します。

Unity Editor で実行する場合、Editor の Play ボタンを押すとデバイス一覧が Console に表示されます。

![image](https://i.gyazo.com/d48d51950fba81035bd144b3b9fc8559.png)

映像デバイスと音声デバイスの `DeviceName` と `UniqueName` がわかれば以下の設定に追記することでデバイスを指定できます。

### Video Capturer Device を指定する

Console に表示されたデバイス名を Video Capturer Device に設定します。

`------------ video capturer devices --------------` 以下から指定する `DeviceName` または `UniqueName` を探します。

### Audio Recording Device を指定する

Console に表示されたデバイス名を Audio Recording Device に設定します。

`------------ audio recording devices --------------` 以下から指定する `DeviceName` または `UniqueName` を探します。

### Audio Playout Device を指定する

Console に表示されたデバイス名を Audio Playout Device に設定します。

`------------ audio playout devices --------------` 以下から指定する `DeviceName` または `UniqueName` を探します。

## 映像の設定

### Unity Camera を使ったゲームキャプチャの方法

サンプル集では Capture Unity Camera を選択することで Scene 内の Camera を使ってゲームをキャプチャすることができます。

デフォルトで設定されているのは Scene 上の Camera ですが、他の Camera を設定することもできます。

![image](https://i.gyazo.com/fcc87d236a1cdbdceded52ce0670e451.png)

### 映像コーデックの指定方法

Video Codec Type を指定することで映像コーデックを指定することができます。

映像コーデックは SDK で定義しているものを指定する必要があります。

VP8 / VP9 / H264 / H265 / AV1 が指定できます。

> **注意**
>
> AMD AMF はドライバーが不安定なため、現在非推奨です。

> **警告**
>
> Windows と Ubuntu 22.04 / 24.04 で H.265 を利用するには、 Intel VPL、AMD AMF、NVIDIA Video Codec のいずれかが必要です。

![image](https://i.gyazo.com/e5340ab530dc37cda2498771a4d8ef9f.png)

### 映像コーデックパラメーターを指定する

サンプル集では映像コーデックパラメーターを指定することができます。

映像コーデックパラメーターは VP9 / AV1 / H.264 で指定できます。

![image](https://i.gyazo.com/f7228c84fb310a44c8e68f8c81e8bf9a.png)

#### VP9 の映像コーデックパラメーター

- Enable Video Vp 9 Params を ON にします
- Video Vp 9 Params Profile Id を 0-3 の値に設定します

#### AV1 の映像コーデックパラメーター

- Enable Video Av 1 Params を ON にします
- Video Av 1 Params Profile を 0-2 の値に設定します

#### H.264 の映像コーデックパラメーター

- Enable Video H264 Params を ON にします
- Video H264 Params Profile Level Id を設定します (例：42e01f)

### 映像ビットレートを指定する

映像ビットレートを指定するには Video Bitrate を設定します。

0 の場合 Sora のデフォルト設定が利用されます。

![image](https://i.gyazo.com/663526d8066cda930345cea61f959625.png)

### 映像フレームレートを指定する

映像フレームレートを指定するには Video Fps を設定します。

デフォルトでは 30fps です。

![image](https://i.gyazo.com/0e97646d76093e82a353f8c5d6bb2e64.png)

## 音声の設定

### Unity Audio Input を使った音声キャプチャの方法

サンプル集では Unity Audio Input を選択することで Scene 内の AudioSourceInput を使ってゲーム内の音声を送信することができます。

デフォルトで設定されているのは AudioSourceInput ゲームオブジェクトの Audio Source に設定されている音声ですが、他の音声を設定することもできます。

![image](https://i.gyazo.com/6ff5ba997832da258d4f208b5903402c.png)

### 音声コーデックを指定する

Audio Codec Type で音声コーデックを指定することができます。

利用できるコーデックは OPUS です。

![image](https://i.gyazo.com/4b5784adf51e92332fd1e2686fc6dbb7.png)

## 映像や音声を送らない方法

サンプル集では 映像や音声を送らないようにするパラメーターとして以下を用意しています。

- Video
- No Video Device
- Audio
- No Audio Device

Video や Audio を OFF にすることでデバイスを掴んだ状態で映像や音声を送らないようにすることができます。

この状態ではセルフビューには映像や音声が表示されます。

No Video Device や No Audio Device を ON にすることでデバイスを掴まない状態で映像や音声を送らないようにすることができます。

この状態ではセルフビューには映像や音声が表示されません。

![image](https://i.gyazo.com/f4dee1a305b9095010e4f1ba043fa5a4.png)

## 音声ストリーミング機能の言語コードを指定する

音声ストリーミング機能で使用する言語コードを Audio Streaming Language Code に指定することができます。

音声ストリーミングの詳細は [Sora のドキュメント](https://sora-doc.shiguredo.jp/AUDIO_STREAMING) を参照してください。

![image](https://i.gyazo.com/b057626f9a52608f89ac732856373e2a.png)
