• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    JavaScript
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A modern video encoding platform for encoding videos optimized for streaming supporting modern encodings such as x264, x265, VP9 and AV1

MiniVideoEncoder

WorkflowEngine Build and Publish to Docker WorkflowEncoder Build and Publish to Docker WorkflowPackager Build and Publish to Docker

Mini Video Encoder (MVE) is a modern video encoding platform based on open-source tools and frameworks.

MVE is

  • Scalable and portable
  • Open-source
  • Optimized for streaming, support multiple authoring specifications
  • Support modern video and audio encodings (x264, x265, VP9, AV1)
  • Support delivery via MPEG-DASH, HLS and Smooth Streaming)
  • Support major DRMs (Google Widevine, Apple Fairplay, Microsoft PlayReady)

Installation instructions

//TODO

Development instructions

MVE consists of the following 4 required services and are stored in a separate folder:

  • WorkflowDatabase
  • WorkflowEngine
  • WorkflowEncoder
  • WorkflowPackager

WorkflowDatabase

The workflow database stores the state of the encoding jobs. MVE uses a MongoDB database.

For local development, the database can be started by executing docker-compose up in a terminal window in the WorkflowDatabase folder.

Screenshot starting workflow database

WorkflowEngine

The workflow engine is responsible for handling the incoming encoding jobs. It implements a REST api for receiving new jobs and requesting the status of encoding jobs.

For local development, the workflow engine can be installed and started by first executing npm install to install all dependencies and npm start to start the engine.

Screenshot starting workflow engine

WorkflowEncoder

The workflow encoder is responsible for actually encoding the input video to the requested formats. Currently the encoder supports x264, x265 and VP9. The workflow encoder uses ffmpeg for encoding.

For local development, the workflow encoder can be installed and started by first executing npm install to install all dependencies and npm start to start the encoder.

Screenshot starting workflow encoder

WorkflowPackager

The workflow packager is responsible for packaging the encoded content. It can converts the multiple encoded output streams into an HLS or Dash package. The packager is also responsible for adding the optional DRM to the package.

For local development, the workflow packager can be installed and started by first executing npm install to install all dependencies and npm start to start the packager.

Screenshot starting workflow packager

Additional tools I use for development

I use two additional tools for local development, Postman and MongoDb Compass Community.

I use Postman to use and test the REST API of the workflow enging. To be able to query the database, I use MongoDB Compass. Both are available for free.

More Repositories

1

python-docuvortex

A repository that contains all the examples that go with a Medium article called
Python
44
star
2

Developer-SSL-Certificates

Generate a local Certificate Authority and self-signed certificates for SSL support during local development
Shell
41
star
3

python-di

Examples to go with an Medium article about using the dependency injection (DI) and DI frameworks with Python
Python
35
star
4

python-eda

A repository that contains all the examples that go with a Medium article called Mastering Event-Driven Architecture in Python
Python
24
star
5

streamfinity-fastapi

A repository that contains all the examples that go with a Medium article called Streamfinity's API Makeover - Embracing Python and FastAPI
Python
22
star
6

clima-link

Node.js MQTT client, broker and storage for handling measurements
JavaScript
19
star
7

python-repo-uow

Examples to go with an Medium article about using the repository and unit of work patterns with Python
Python
18
star
8

twofactorauth

Demo project to show how to implement two factor authentication using Node.js and Vue
JavaScript
16
star
9

python-docuvortex-local

A repository that contains all the examples that go with a Medium article called NeonShield’s DocuVortex Evolution — From OpenAI to PrivateGPT
Python
15
star
10

python-pygame-galaga

A repository to hold all the example that go with a Medium article about creating a galaga clone using Pygame
Python
9
star
11

shaka-player-angular

Demo project to show using Shaka Player inside an Angular application
TypeScript
9
star
12

python-docker

Python
8
star
13

python-yaml

Repository that goes with a Medium article about reading and write Kubernetes YAML files
Python
7
star
14

leave-disease

TensorFlow Python code to go with a Medium article
Python
6
star
15

python-galaga

Python
6
star
16

leave-deploy

TypeScript
6
star
17

cats_vs_dogs

Tensorflow model for the Kaggle Cats vs Dogs data set
Python
5
star
18

command-line-interfaces-in-python

Examples on how to create command line interfaces in Python
Python
5
star
19

python-gem-libs

Repository to holds the examples of a Medium repository about Pythons hidden gem libraries
Python
4
star
20

python-asyncio

A repository to store the examples that we use in a Medium article that explains asyncio in Python
Python
4
star
21

python-perf

Repository that contains the examples from a Medium article about Python performance
Python
4
star
22

python-processing-pipeline

Example of a flexible processing pipeline using filters and Python
Python
3
star
23

Set

The Set game implemented in Swift
Swift
3
star
24

hls-parser

hls-parser
C#
2
star
25

developer-assistant

JavaScript
2
star
26

python-crossword

A repository that contains all the examples that go with a Medium article called How to Craft Crosswords with Code - Python, Pygame, and the OpenAI API
Python
2
star
27

Kaggle

Several Jupiter Notebooks for Kaggle competitions
Jupyter Notebook
2
star
28

Unit-Testing-with-Python

Code with the article Unit Testing with Python
HTML
2
star
29

docker-net

Repository that belongs to a medium article that describes tips to run .NET applications in Docker containers
C#
2
star
30

python-streamfinity-cqrs

A repository that contains all the examples that go with a Medium article called Understanding CQRS: A Pythonic Approach to Command-Query Separation
Python
2
star
31

python-formula1-pitstops

A repository that contains all the examples that go with a Medium article called
Python
1
star
32

AccessRestrictionManagement

PowerShell script to manage the access restrictions of App service
PowerShell
1
star
33

cats_vs_dogs_tl

DNN using Transfer learning
Python
1
star
34

python-decorators

The accompanying source code for my Medium article on Python decorators can be found here.
Python
1
star
35

GetSwiftyPart2

Homework assignments for the GetSwifty - Part2 course
Swift
1
star
36

SeriesOrganizer

Application for organizing series
C#
1
star
37

python-advanced-logging

Demonstrating Python Logging
Python
1
star
38

python-archive

Examples that belong to a Medium article "Squeeze Your Data With Python"
Python
1
star
39

python-tire-degradation

A repository that contains all the examples that go with a Medium article called
Python
1
star
40

python-micromouse

A repository that contains all the examples that go with a Medium article called Digital Micromouse - A Journey From Physical to Virtual Mazes
Python
1
star
41

WCF2gRPC

Some gRPC examples as mentioned by a medium article
C#
1
star
42

python-package-creation

Source code that belongs to the following medium article [Test](Test)
Python
1
star
43

F1-predictor

A repository that contains all the examples that go with a Medium article about creating a deep neural network using Pytorch to predict the outcome of a Formula 1 race
Python
1
star