Files
cuframes-docs/site/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/install.md
T
Claude Opus 8c3c43709d docs: full content + landing + RU translations
Initial documentation site for cuframes:

- Landing page (src/pages/index.mdx) — hero, quick example (publisher +
  subscriber), comparison table vs naive/DeepStream, honest "early but
  production-tested" status
- /docs/intro — full overview
- /docs/getting-started/{install,first-publisher,first-subscriber}
- /docs/concepts/{frame-vs-packet-ring,ownership-modes,sync-vmm-stream}
  with mermaid diagrams
- /docs/integration/{ffmpeg-demuxer,ffmpeg-filter,python}
- /docs/reference/{api-c,api-cpp,protocol} — full v4 wire protocol spec
  incl. VMM_FDS message, magic 0xCC7C1DCE bump diff
- /docs/faq — comparison vs DeepStream/GStreamer, license, multi-host
  limitations
- i18n/ru/ — parallel RU translation (tech terms latin, склонение апостроф)

Build:
- Docusaurus 3.10.1 + theme-mermaid + search-local
- Follows dagstack-* docs convention (canonical: dagstack-plugin-system-docs)
- Apache-2.0 license; cuframes lib itself remains LGPL-2.1+

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 23:31:03 +01:00

111 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Установка
sidebar_position: 1
---
# Установка
cuframes работает **только на Linux**. IPC-механизм опирается на POSIX shared memory и передачу file descriptors через `SCM_RIGHTS` поверх Unix sockets. Windows, macOS и WSL2 не поддерживаются.
Также нужен NVIDIA GPU с compute capability ≥ 7.5 (Turing или новее) и CUDA 12+ driver. Точнее: 64-bit Linux, glibc 2.31+, ядро 5.4+ (для `cuMemMap` + `SCM_RIGHTS`).
## Вариант 1 — готовый Docker-образ (рекомендуется для первого знакомства)
Runtime-образ поставляет `libcuframes.so` и bridge-утилиту `cuframes-rtsp-source` поверх `nvidia/cuda:12.4.1-runtime`.
```bash
docker pull gx/cuframes:0.4
```
Smoke-check:
```bash
docker run --rm --runtime=nvidia gx/cuframes:0.4 \
/usr/local/bin/cuframes-rtsp-source --help
```
Чтобы запустить publisher и subscriber в двух контейнерах, контейнер **publisher** должен стартовать с `--ipc=shareable`, а **subscriber** — шарить его IPC namespace через `--ipc=container:<publisher>`. Шарить PID namespace **не нужно** начиная с v0.4 — handle'ы передаются как POSIX file descriptors через Unix socket.
```bash
# Publisher
docker run -d --name cuframes-pub --runtime=nvidia --ipc=shareable \
-v /run/cuframes:/run/cuframes \
gx/cuframes:0.4 \
/usr/local/bin/cuframes-rtsp-source --rtsp 'rtsp://...' --key cam1
# Subscriber
docker run --rm --runtime=nvidia \
--ipc=container:cuframes-pub \
-v /run/cuframes:/run/cuframes:ro \
gx/cuframes:0.4 \
/usr/local/bin/sub_count --key cam1 --max-frames 100
```
Правила namespace: subscriber должен share IPC namespace с publisher (POSIX `/dev/shm` живёт в IPC ns). PID sharing **не** нужен (это свойство v0.4 — до v0.4 нужны были оба).
## Вариант 2 — сборка из исходников
### Требования к сборке
| | Минимум |
|---|---|
| CUDA Toolkit | 12.0 |
| NVIDIA driver | 525 |
| CMake | 3.20 |
| GCC / Clang | 11 / 14 |
| FFmpeg dev libs | libavcodec, libavformat, libavutil (только для `cuframes-rtsp-source`) |
На Ubuntu 22.04 / 24.04:
```bash
sudo apt-get install -y \
build-essential cmake ninja-build pkg-config \
libavcodec-dev libavformat-dev libavutil-dev
```
### Конфигурация и сборка
```bash
git clone https://git.goldix.org/gx/cuframes.git
cd cuframes
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
```
На выходе:
- `build/libcuframes/libcuframes.so` — shared library
- `build/tools/cuframes-rtsp-source/cuframes-rtsp-source` — RTSP-bridge
- `build/examples/sub_count/sub_count` — референсный subscriber
### Установка system-wide
```bash
sudo cmake --install build --prefix /usr/local
sudo ldconfig
```
Заголовки кладутся в `/usr/local/include/cuframes/`, library — в `/usr/local/lib/`.
### Опции сборки
| Опция | По умолчанию | Примечания |
|---|---|---|
| `BUILD_TOOLS` | `ON` | `cuframes-rtsp-source` (нужны FFmpeg dev libs) |
| `BUILD_EXAMPLES` | `ON` | референсный subscriber `sub_count` |
| `BUILD_TESTING` | `ON` | unit- и stress-тесты |
| `BUILD_FFMPEG_FILTER` | `OFF` | out-of-tree, требует пропатченное FFmpeg-дерево |
| `BUILD_PYTHON_BINDINGS` | `OFF` | в планах |
## Вариант 3 — apt / dpkg пакеты
Появятся к релизу v1.0. До этого — Docker-образ или сборка из исходников.
## Проверить установку
```bash
cuframes-rtsp-source --help
```
Если бинарь лежит в `PATH` и печатает свой usage-баннер, runtime подключён. Чтобы убедиться, что сама library загружается из твоего кода, переходи к [Первому publisher](./first-publisher.md).