Files
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

4.1 KiB
Raw Permalink Blame History

title, sidebar_position
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.

docker pull gx/cuframes:0.4

Smoke-check:

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.

# 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:

sudo apt-get install -y \
  build-essential cmake ninja-build pkg-config \
  libavcodec-dev libavformat-dev libavutil-dev

Конфигурация и сборка

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

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-образ или сборка из исходников.

Проверить установку

cuframes-rtsp-source --help

Если бинарь лежит в PATH и печатает свой usage-баннер, runtime подключён. Чтобы убедиться, что сама library загружается из твоего кода, переходи к Первому publisher.