camera-streamer/docs/install-manual.md
2023-05-31 00:51:28 +02:00

78 lines
1.9 KiB
Markdown

# Install
This describes a set of manual instructions to run camera streamer.
## Validate your system
**This streamer does only use hardware, and does not support any software decoding or encoding**.
It does require system to provide:
1. ISP (`/dev/video13`, `/dev/video14`, `/dev/video15`)
2. JPEG encoder (`/dev/video31`)
3. H264 encoder (`/dev/video11`)
4. JPEG/H264 decoder (for UVC cameras, `/dev/video10`)
5. At least LTS kernel (5.15, 6.1) for Raspberry PIs
You can validate the presence of all those devices with:
```bash
uname -a
v4l2-ctl --list-devices
```
The `5.15 kernel` or `6.1 kernel` is easy to get since this is LTS kernel for Raspberry PI OS:
```bash
apt-get update
apt-get dist-upgrade
reboot
```
Ensure that your `/boot/config.txt` has enough of GPU memory (required for JPEG re-encoding):
```text
# Example for IMX519
dtoverlay=vc4-kms-v3d,cma-128
gpu_mem=128 # preferred 160 or 256MB
dtoverlay=imx519
# Example for Arducam 64MP
gpu_mem=128
dtoverlay=arducam_64mp,media-controller=1
# Example for USB cam
gpu_mem=128
```
## Compile
```bash
git clone https://github.com/ayufan-research/camera-streamer.git --recursive
apt-get -y install libavformat-dev libavutil-dev libavcodec-dev libcamera-dev liblivemedia-dev v4l-utils pkg-config xxd build-essential cmake libssl-dev
cd camera-streamer/
make
sudo make install
```
## Use it
There are three modes of operation implemented offering different
compatibility to performance.
### Use a preconfigured systemd services
The simplest is to use preconfigured `service/camera-streamer*.service`.
Those can be used as an example, and can be configured to fine tune parameters.
Example:
```bash
systemctl enable $PWD/service/camera-streamer-arducam-16MP.service
systemctl start camera-streamer-arducam-16MP
```
If everything was OK, there will be web-server at `http://<IP>:8080/`.
Error messages can be read `journalctl -xef -u camera-streamer-arducam-16MP`.