Coder Social home page Coder Social logo

encodesrv's Introduction

EncodeSrv

EncodeSrv is a Python driven automatic video encoding tool, using ffmpeg and a database to configure and run batches of encode jobs. It is used by YSTV to prepare videos for the website by transcoding high-bitrate NLE-exported files to formats for viewing online, playout and download (with watermarks on downloads). In addition to video and audio transcoding EncodeSrv can also apply MP4Box (http://www.videohelp.com/tools/mp4box) to move metadata to the video start and normalise volume using EBU R128 loudness analysis.

Downloading EncodeSrv

git clone https://github.com/YSTV/encodesrv.git

Prerequisites

In order to run, EncodeSrv requires python3, python3-pip, libpq-dev, pv, psycopg2, irc, slackclient and python-dateutil, along with access to a few PostgreSQL database tables to store encode formats and jobs.

You'll also need a copy of ffmpeg with the codecs you plan to use compiled in, take a look at https://github.com/rrah/ffmpeg-linux-build for the script we use to build ours.

Configuration

Rename the file config.py.sample to config.py and fill in the database and email configuration options, along with a working directory that source and pass log files can be stored in temporarily.

Using EncodeSrv

EncodeSrv uses a Python daemon class to run in the background as a server, start it with:

python3 server.py start

Then set up some encode formats in the encode_formats table and add jobs to the encode_jobs table to make it work some magic!

It can also be run as a foreground process, by running:

python3 __main__.py

Database tables

The file schema.sql contains the SQL statements to generate the two database tables needed, along with some comments explaining what each column does.

For the purposes of the source and destination file locations, we use NFS and CIFS mounts so these appear as local paths but are on a remote server, ie /data/videos/web/playout is actually the video drive on our CasparCG playout server.

IRC/Slack bots

Encodesrv also supports the use of IRC and/or Slack bots. These can be configured (and turned on and off) in config.py.

encodesrv's People

Contributors

rrah avatar top-cat avatar peskdale avatar mstratford avatar rmil avatar samdbmg avatar tim020 avatar lloydw93 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.