# 付録2 配信環境

## 8月編の配信環境

### 概要

8月編の配信ではカメラ側の構成はライトな構成を目指し、Raspberry Pi 3 Model B+を使用していました。カメラの取り込み解像度は640x480、エンコード後の解像度は480×360とかなりコンパクトな配信でした。フレームレートも20fpsに抑え、配信ビットレートは396kbpsと6時間で1GBに収まるようにしました。

{% code title="raspberrypi-live.sh" %}

```bash
#/bin/sh
cvlc -vvv v4l2:///dev/video0:chorma=h264:width=640:height=480:fps=20 --sout '#transcode{vcodec=mp4v,vb=2800,width=640,height=480,acodec=none,threads=4}:rtp{sdp=rtsp://:8554/}'
```

{% endcode %}

配信映像のエンコードは安定した機材で行い、万が一カメラがフリーズしても再起動可能なように構成しています。

### 8月編の概略図

![](/files/-LMLUkKBwTm-Or2eE0XL)

### 8月編の欠点

\
しかし、この構成では次のような欠点がありました。

* Raspberry Pi 3 Model B+のスペック上限でカメラの取り込み解像度が640x480に制限されてしまった。(カメラのセンサー性能は1920x1080)
* 画面解像度が低すぎたためYouTubeへアップロードすると画質が著しく低下してしまう。(解像度が360pまで制限される)
* カメラの詳細な設定が不可能

## 9月編の配信環境

### 概要

8月編で起きたこれらの欠点を解消するため、9月の配信では親機をPentium G4500の自作PCに変更しました。また、スペックアップに伴い配信画面の解像度も854×480とYouTubeの480p画質を維持できるようにし、映像ビットレートも450kbpsとしました。

{% code title="g4500-live.sh" %}

```bash
#/bin/sh
cvlc -vvv v4l2:///dev/video0:chorma=h264:width=1280:height=720:fps=20 --sout '#transcode{vcodec=mp4v,vb=2800,width=854,height=480,acodec=none,threads=4}:rtp{sdp=rtsp://:8554/}'
```

{% endcode %}

### 9月編の概略図

![](/files/-LMLVjOV1N9umY4W2jXT)

カメラのコントロールに関してはリモートカメラ親機のUbuntuで使用可能なv4l2ucpを利用しVNCのGUI環境からリアルタイムで各種設定のコントロールができるようになりました。

![](/files/-LMLVw892luv9gpX9qp2)

### 9月編の欠点

機材の変更により次のような欠点が発生しました。

* 消費電力の増加
* ドライバに起因すると思われる、不定期なカメラ映像の乱れ
* 解像度の向上によりOBS StudioでフィルタをかけるとCPU負荷が一気に増す。

消費電力はRaspberry Piの10W以下から50Wまで一気に跳ね上がりました。カメラ映像の乱れに関しては打つ手なしの状態です。Windowsを素直に利用すれば解決するのですが、余っている機材が無線端末のみで安定性に欠けるため今回は使用しませんでした。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://18a.casket.jpnkn.com/fu-2-pei-xin-jing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
