Skip to main content

Framework to process video data

Project description

Videopypeline

A fancy wrapper for opencv inspired by the keras model API.

Install

pip install videopypeline

Usage

videopypeline can be used to process any datatype. Nonetheless, its primary use is intended for videos. The examples below show some use cases. Refer to the Python-Notebook in this repository to see a more established usage example.

Linear pipeline

import videopypeline as vpl

video_path = './path/to/video.mp4'
output_path = './path/to/output.mp4'

# Setup pipeline model
raw_video = videopypeline.generators.ReadVideoFile(video_path)
grey = videopypeline.functions.Rgb2Greyscale()(raw_video)
crop = videopypeline.functions.Crop((100, 200), (500, 500))(grey)
smooth1 = videopypeline.functions.Smooth(101)(crop)
stats = videopypeline.core.Action(lambda frame: print(frame.mean(), frame.std()))(smooth1)
writer = videopypeline.actions.VideoWriter(output_path, 30, aggregate=True, collect=False, verbose=True)(stats)

# Invoke pipeline
_ = writer()

Tree pipeline

import videopypeline as vpl

video1_path = './path/to/video1.mp4'
video2_path = './path/to/video2.mp4'
output_path = './path/to/output.mp4'

# Setup pipeline model
raw_video1 = videopypeline.generators.ReadVideoFile(video1_path)
grey1 = videopypeline.functions.Rgb2Greyscale()(raw_video1)
smooth1 = videopypeline.functions.Smooth(101)(grey1)

raw_video2 = videopypeline.generators.ReadVideoFile(video2_path)
grey2 = videopypeline.functions.Rgb2Greyscale()(raw_video2)
smooth2 = videopypeline.functions.Smooth(101)(grey2)

# This node has two parents
diff = videopypeline.core.Function(lambda *frames: frames[0] - frames[1])([smooth1, smooth2])
writer = videopypeline.actions.VideoWriter(output_path, 30, aggregate=True, collect=False, verbose=True)(diff)

# Invoke pipeline
_ = writer()

Graph pipeline

</code></pre>
<h3>Filter pipeline</h3>
<pre lang="py"><code>

Terminology

Node

Generator

Function

Remarks

When adding custom Nodes, which inherit from vpl.core.Function, make sure the output object is different from the input object, as this could lead to unexpected behaviour.

Action

Pipeline

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

videopypeline-0.0.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

videopypeline-0.0.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file videopypeline-0.0.2.tar.gz.

File metadata

  • Download URL: videopypeline-0.0.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for videopypeline-0.0.2.tar.gz
Algorithm Hash digest
SHA256 336e50fb88a8ccc97cdf09d52a2f2fff34dfce8226cca3d1a94ccd8ed421b1cb
MD5 02becfbdfae1a7535497f74d6ed2529b
BLAKE2b-256 e6ee92807aab9e46984bbd4a94049562f37f88ce6d4401a639037786091fb822

See more details on using hashes here.

File details

Details for the file videopypeline-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for videopypeline-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 11f8964c1759ebb6eb1c25089a7310a6be09406ca9edebdfefdbed21335f6a12
MD5 fa03d03b5ad946840c5195d0c442867b
BLAKE2b-256 09cf2681a7c48e2767132ad1efce0996bd75cdfe5807ca0712501cf356386441

See more details on using hashes here.

Supported by

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