Apra-Labs/ApraPipes
Apra-Labs/ApraPipes has 37 GitHub stars and 38 forks. GitHot measured 0 stars in 24 hours and +2 in 7 days. Last checked 2026-11-10 03:14 UTC. Last push 2026-10-29.
A pipeline framework for developing video and image processing application. Supports multiple GPUs and Machine Learning tooklits
Measured star growth
- in 24h
- 0
- in 7 days
- +2
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
ApraPipes
A pipeline framework for developing video and image processing applications. Supports multiple GPUs and Machine Learning toolkits. Learn more about ApraPipes here.
Declarative Pipelines & Node.js Support
Build video processing pipelines using JSON configuration or JavaScript:
{
"modules": {
"source": { "type": "FileReaderModule", "props": { "path": "video.mp4" } },
"decoder": { "type": "Mp4ReaderSource" },
"sink": { "type": "FileSinkModule" }
},
"connections": [
{ "from": "source", "to": "decoder" },
{ "from": "decoder", "to": "sink" }
]
}
Features:
- 50+ registered modules (sources, transforms, encoders, AI inference)
- GPU acceleration with automatic CPU↔GPU memory bridging
- Node.js addon for JavaScript/TypeScript applications
- CLI tool for running and validating pipelines
See examples/ and Pipeline Author Guide to get started.
Build Status
ApraPipes is automatically built and tested on Windows, Linux (x64 and ARM64), and macOS.
| Platform | OS | Version | Test Results | Workflow |
|---|---|---|---|---|
| x86_64 | Windows | 2022 | ||
| x86_64 | Linux | 22.04 | ||
| x86_64 | macOS | 15.0+ | ||
| ARM64 | Linux (Jetson) | 20.04 |
Getting Started with ApraPipes
- Note : Make sure to clone using recursive flag
git clone --recursive https://github.com/Apra-Labs/ApraPipes.git
Windows (Version ≥ 10)
Requirements
Prerequisites
Visual Studio
- Install Visual Studio 2019 Community
- Install Desktop development C++
- .NET Desktop development
- Universal Windows Development Platform
Cuda
- Create an account on developer.nvidia.com if you're not already a member. Note : Otherwise the next step will show HTTP 404/403 error.
- Windows 10/11 : Cuda Toolkit 10.2 or CUDA Toolkit 11.8.
Cudnn
Download Cudnn and extract files where cuda is installed. Note: Please be aware that this process requires some effort. Here are the necessary steps:
- Download the correct zip file matching your cuda version. Do not download the exe/installer/deb package.
- Windows:
- Download this file.
Clone with submodules and LFS.
git clone --recursive https://github.com/Apra-Labs/ApraPipes.git
Build
Open PowerShell as an administrator and execute the following commands
Build Without Cuda
If your windows system does not have an NVIDIA GPU use this script
build_windows_no_cuda.bat
Build With Cuda
build_windows_cuda.bat
To Build With Documentation
build_windows_cuda.bat --build-doc
Test
Run Tests
- list all tests
_build/BUILD_TYPE/aprapipesut.exe --list_content - run all tests
_build/BUILD_TYPE/aprapipesut.exe - run all tests disabling memory leak dumps and better progress logging
_build/BUILD_TYPE/aprapipesut.exe -p -l all --detect_memory_leaks=0 - run one test
_build/BUILD_TYPE/aprapipesut.exe --run_test=filenamestrategy_tests/boostdirectorystrategy - run one test with arguments
_build/BUILD_TYPE/aprapipesut.exe --run_test=unit_tests/params_test -- -ip 10.102.10.121 -data ArgusCamera- Look at the unit_tests/params_test to check for sample usage of parameters in test code.
Linux (Ubuntu ≥ 20.04)
Requirements
Prerequisites
Cuda
- Create an account on developer.nvidia.com if you're not already a member. Note : Otherwise the next step will show HTTP 404/403 error.
- Ubuntu 20.04/22.04:
- 20.04 - CUDA Toolkit 11.8
- 22.04 - CUDA Toolkit 12.x
Cudnn
Build
- Run this command to make the script file executable.
chmod +x build_linux_*.sh
Build Without Cuda
If your windows system does not have an NVIDIA GPU use this script
./build_linux_no_cuda.sh
Build With Cuda
./build_linux_cuda.sh
To Build With Documentation
./build_linux_cuda.sh --build-doc
Build can take ~2 hours depending on the machine configuration.
Test
Run Tests
- list all tests
./_build/aprapipesut --list_content - run all tests
./_build/aprapipesut - run all tests disabling memory leak dumps and better progress logging
./_build/aprapipesut -p -l all --detect_memory_leaks=0 - run one test
./_build/aprapipesut --run_test=filenamestrategy_tests/boostdirectorystrategy - run one test with arguments
./_buildaprapipesut --run_test=unit_tests/params_test -- -ip 10.102.10.121 -data ArgusCamera- Look at the unit_tests/params_test to check for sample usage of parameters in test code.
macOS (Version ≥ 15.0)
Requirements
Prerequisites
Homebrew
- Install Homebrew package manager if not already installed:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Build Tools
Install nasm (required for FFmpeg):
brew install nasmClone with submodules and LFS.
git clone --recursive https://github.com/Apra-Labs/ApraPipes.git
Build
- Run this command to make the script file executable.
chmod +x build_macos.sh
Build Without Cuda (Only NoCUDA Build)
macOS builds do not support CUDA. Use the following script:
./build_macos.sh
Build can take ~2 hours depending on the machine configuration.
Test
Run Tests
- list all tests
./build/aprapipesut --list_content - run all tests
./build/aprapipesut - run all tests disabling memory leak dumps and better progress logging
./build/aprapipesut -p -l all --detect_memory_leaks=0 - run one test
./build/aprapipesut --run_test=filenamestrategy_tests/boostdirectorystrategy - run one test with arguments
./build/aprapipesut --run_test=unit_tests/params_test -- -ip 10.102.10.121 -data ArgusCamera- Look at the unit_tests/params_test to check for sample usage of parameters in test code.
Jetson Boards - Nano, TX2, NX, AGX, Orin (JetPack ≥ 5.0)
Requirements
Prerequisites
Setup the board with JetPack 5.0+:
- JetPack 5.x: Ubuntu 20.04, CUDA 11.4
- JetPack 6.x: Ubuntu 22.04, CUDA 12.x
Clone with submodules and LFS.
git clone --recursive https://github.com/Apra-Labs/ApraPipes.git
Build
Build for Jetson (Only Cuda Build)
- Run this command to make the script file executable.
chmod +x build_jetson.sh
- ApraPipes builds CUDA version on Jetson Boards.
./build_jetson.sh
- To Build With Documentation
./build_jetson.sh --build-doc
Build can take ~12 hours on Jetson Nano. Note: Jetson build can also be done using Ubuntu 20.04+ x86_64 Laptop via cross compilation.
Cross Compilation using qemu
Cross compilation using qemu
Conceptual steps adapted from here:
- On any Intel Ubuntu 20.04+ computer (physical or virtual including wsl) mount a Jetson SD Card Image as described above
- Copy relevant files from mounted image to created a rootfs
- Install qemu on ubuntu host
- chroot into emulated aarm64 environment using script provided in the github link above
- install extra tools and build aprapipes and aprapipesut
- the built aprapipesut can be copied to a Jetson board and run.
This approach can use all 12-16 cores of a laptop and hence builds faster.
Test
Run Tests
- list all tests
./_build/aprapipesut --list_content - run all tests
./_build/aprapipesut - run one test
./_build/aprapipesut --run_test=filenamestrategy_tests/boostdirectorystrategy - run one test with arguments
./_build/aprapipesut --run_test=unit_tests/params_test -- -ip 10.102.10.121 -data ArgusCamera - Look at the unit_tests/params_test to check for sample usage of parameters in test code
Docker
Requirements
Prerequisites
- Ensure virtualization is enabled in both the BIOS settings of your computer and the Windows virtualization feature -Refer this article to enable them
- Install WSL 2 on your system:
wsl --install - Set WSL 2 as the default version using the command line:
wsl --set-default-version 2 - Install Ubuntu 22.04 from Microsoft Store or run
wsl --install -d Ubuntu-22.04 - Install Docker Desktop on Windows from here
- Enable Docker integration with WSL 2 (Docker Desktop settings → Resources → WSL integration → Enable Ubuntu-22.04 → Apply & Restart)
- Install nvidia-container-toolkit in WSL Ubuntu for GPU access - Follow this guide
- Note:"Follow the exact instructions outlined in the document to ensure the correct and successful installation of the NVIDIA Container Toolkit"
Build
Build for Docker
- Use this docker image with all dependencies pre-installed:
docker pull ghcr.io/kumaakh/aprapipes-build-x86-ubutu18.04-cuda:last-good
Note: This image is based on Ubuntu 18.04 with pre-cached vcpkg dependencies for fast builds (~10 min). The WSL host can be Ubuntu 22.04.
- Mount an external volume as a build area, and then use the Windows command line to create a Docker container using the above image with the following command:
..your command should look like this [where D:\ws\docker-pipes->local_folder_path , pipes->container_name ]docker run -dit --gpus all -v "</path/to/external_volume>":"/mnt/b/" --name <give-container-name> a799cc26f4b7docker run -dit --gpus all -v "D:\ws\docker-pipes":"/mnt/b/" --name pipes a799cc26f4b7 - After creating the container, execute the following command to access its command line interface
docker exec -it <container-name> /bin/bash - Note:"When inside the container, build all contents within the mounted external folder"
- clone the repository with submodules and LFS as described above
- build using build_linux_*.sh scripts as described above
This build will be fairly fast (~10 mins) as entire vcpkg cache comes down with the docker image
Update Submodules
git submodule update --init --recursive
Update Documentation
To update documentation, refer to Documentation Guidelines in the Contribution-Guidelines.
To regenerate documentation
Run,
./build_documentation.sh
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,527 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,396 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,942 starsmrdoob/three.js
JavaScript 3D Library.
117,983 stars