Skip to main content

High-performance video rendering in Python powered by C++, FFmpeg, and miniaudio.

Project description

VideoNative

GitHub Release License Build Status Python Version

High-performance video rendering in Python powered by C++, FFmpeg, and miniaudio.

Overview

VideoNative is a lightweight, low-level Python extension designed for efficient video and audio decoding. By leveraging native C++ bindings, it bridges high-performance media frameworks directly into Python applications.

Core Dependencies

  • FFmpeg - Industry-standard library for video decoding and scaling.
  • miniaudio - Single-file audio playback and management library.

Runtime requirements


[!TIP] Looking for a complete implementation? Check out the CarbonPlayer repository for a full-fledged video player example built using this library.

Financial Support

Donate via

Donate via PayPal

Build and Install Instructions

Select your operating system below for step-by-step setup instructions.

Windows

1. Prerequisites

Install the necessary C++ build tools and CMake using Windows Package Manager (winget):

# Install Visual C++ Build Tools
winget install Microsoft.VisualStudio.BuildTools

# Install CMake
winget install Kitware.CMake

2. Install FFmpeg Shared Libraries

Download and extract the required FFmpeg master builds:

cd "$env:USERPROFILE\Downloads"
wget https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl-shared.zip -OutFile ffmpeg.zip
Expand-Archive -Path ffmpeg.zip -DestinationPath . -Force
Rename-Item -Path "ffmpeg-master-latest-win64-gpl-shared" -NewName "ffmpeg"

3. Installation

Option A: Direct installation via pip

pip install https://github.com/Novfensec/VideoNative/archive/main.zip --no-cache

Option B: Build the extension locally

pip install -e .

# OR using CMake directly
mkdir build
cd build
cmake ..
cmake --build . --config Release

Linux

1. Prerequisites

Install the necessary development headers and media libraries:

sudo apt update
sudo apt install build-essential pkg-config ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev
pip install ninja cmake

2. Installation

Option A: Direct installation via pip

pip install https://github.com/Novfensec/VideoNative/archive/main.zip --no-cache

Option B: Build the extension locally

pip install -e .

# OR using CMake directly
mkdir build
cd build
cmake ..
make

Android

Using the python-for-android Toolchain

To use VideoNative within Android environments, configure your buildozer.spec to use the appropriate fork and branch containing Android-specific patches:

  1. Add ffmpeg, videonative and numpy to your application requirements:

    requirements = python3, kivy, ffmpeg, videonative, numpy
    
  2. To follow the latest development configure the toolchain source or you can proceed with p4a.branch=develop and skip this configuration:

    p4a.fork = novfensec
    p4a.branch = videonative
    

License

This project is licensed under the MIT License. Please review the license files of the upstream dependencies FFmpeg and miniaudio for their respective licensing terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

videonative-1.0.0.tar.gz (64.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

videonative-1.0.0-cp313-cp313-manylinux_2_39_x86_64.whl (64.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

File details

Details for the file videonative-1.0.0.tar.gz.

File metadata

  • Download URL: videonative-1.0.0.tar.gz
  • Upload date:
  • Size: 64.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for videonative-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c58b70f3634a626f5d7b3d698b968db74789d854b57f6999b65ec4f661bcff77
MD5 110ea178862d988ca3e800d68a19be70
BLAKE2b-256 d68d34b2f38c3eac56327304b90b17ef38bc5931a31b1188eec8dbfe8e34ab26

See more details on using hashes here.

File details

Details for the file videonative-1.0.0-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for videonative-1.0.0-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 234c2c483c5e67c249562f6a5cb8d02df5b72f26735ac0b32c3b652997df3c34
MD5 1f1367c698030fb06d021b386f980616
BLAKE2b-256 1d3b1f8d37cf31af2c24bbbe541ea259ed4d61a51659cee3c0da0cfcdc341bf1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page