Skip to content

Latest commit

 

History

History
88 lines (65 loc) · 3.42 KB

README.md

File metadata and controls

88 lines (65 loc) · 3.42 KB

Demos

See the demo comparison to choose a demo. All commands below run from the repository root. The Python video runtime below builds from public sources; no company account, private image, or separately installed CUDA toolkit is needed.

Start with Playlist: its Docker image includes generated clips, and its UI-only preview works without a GPU.

NVIDIA host setup

Use a Linux x86-64 host with Docker, Docker Compose, an NVIDIA driver, and the NVIDIA Container Toolkit. Follow that guide to enable Docker GPU access, then check:

nvidia-smi
docker run --rm --gpus all nvidia/cuda:11.7.1-base-ubuntu22.04 nvidia-smi

The CUDA demo images compile for compute capability 7.0 or newer. Playback and streaming also need hardware decode and H.264 NVENC support; having CUDA alone is insufficient. Browser capture additionally requires the NVIDIA graphics driver libraries and /dev/dri, not a compute-only driver. See each demo's requirements for details.

git clone --depth 1 --recurse-submodules --shallow-submodules \
  https://github.com/amagimedia/avplumber
cd avplumber

For an existing checkout, run git submodule update --init --recursive.

The Docker commands use :z on media mounts so they also work with SELinux enabled, as on Fedora. Mount only the demo's media directory.

Build the Python video runtime

The mixer image builds avplumber, its Python module, and patched FFmpeg together. Playlist and Replay can reuse this image:

docker build -f docker-compose/mixer/Dockerfile.fedora44 -t avplumber-mixer:local .

This is the image the mixer's Compose file builds under the same tag: Fedora 44 with CUDA 13.4, which needs host driver R615 or newer. For an older driver build docker-compose/mixer/Dockerfile (Ubuntu 22.04 / CUDA 11.7) instead; the mixer guide compares the two.

Then follow Mixer, Playlist, or Replay for commands and controls. The first build compiles FFmpeg and avplumber; subsequent builds reuse Docker's cache. These demos do not require neural models or TensorRT.

Start a WebRTC preview

Playlist and Replay require Janus; Mixer can also write directly to a file or stream. Start the public Janus and preview services using the shared DMA-BUF service definitions:

docker compose -f docker-compose/dmabuf/compose.yaml up -d --build janus janus-preview

Open http://127.0.0.1:8080 after starting a player. The included video-only mountpoint accepts the demos' default RTP/RTCP ports, 5004/5005. Run one demo output at a time on those ports.

For a remote host, prefix the Compose command with JANUS_HOST_IP=<host> using the host address reachable by your browser, then open http://<host>:8080. Allow the preview and Janus HTTP ports (8080, 8088) and WebRTC UDP ports 20000–20100 through the host firewall.

Stop the preview services with:

docker compose -f docker-compose/dmabuf/compose.yaml down

Other starting points