Valkka is a python media streaming framework

Create video streaming and surveillance solutions purely in Python. No need to go C++ ever again.

Some highlights of Valkka

  • Python3 API, while streaming itself runs in the background at the cpp level. Threads, semaphores, frame queues etc. are hidden from the API user.

  • Works with stock OnVif compliant IP cameras

  • Create complex filtergraphs for your streams - send stream to screen, to disk or to your module of choice via shared memory

  • Share decoded video with python processes across your Linux system

  • Plug in your python-based machine vision modules : libValkka is framework agnostic, so everything goes - pytorch, tensorflow, you name it!

  • Designed for massive video streaming : view and analyze simultaneously a large number of IP cameras

  • Recast the IP camera video streams to either multicast or unicast

  • Build graphical user interfaces with PyQt, interact machine vision with Qt’s signal/slot system and build highly customized GUIs

If you are not a developer and wonder why all this is supposed to be cool and the economic benefits of it (an investor perhaps), please take a look at the Valkka VMS whitepaper

Devs already involved knee-deep in the video streaming / machine vision business, might want to take a look at this presentation to see some of the typical video streaming / machine vision problems libValkka can solve for you.

This documentation is a quickstart for installing and developing with Valkka using the Python3 API.

This is the recommended learning process:

  • Start with the tutorial

  • Valkka streams video and images between python multiprocesses, so reading this article is a must

  • If you’re into creating PyQt/PySide2 applications, take a look at the PyQt testsuite

  • If you’re more into cloud apps, check out valkka-streamer

For a desktop demo program using Valkka, check out Valkka Live