GithubHelp home page GithubHelp logo

chrisyerga / homerun-dvr Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 366 KB

My DIY DVR running on a PC that uses an HDHomeRun device to capture QAM modulated MPEG2 transport streams and extract programs and store them. Integrated with TV guide listings, commercial removal and transcoding.

C# 99.98% Smalltalk 0.02%
mpeg2 qam-modulation ts-parser

homerun-dvr's Introduction

homerun-dvr

DVR running on a PC that uses an HDHomeRun device to capture QAM modulated MPEG2 transport streams and extract programs and store them. Integrated with TV guide listings, commercial removal and transcoding.

Components

Receiver

Uses the HDHomeRun device which takes a cable TV signal and tuning/filtering parameters to pull a raw MPEG2 transport stream from a given QAM256 channel from your cable provider.

What channels are recorded is controlled by the scheduler informed by TV listings and the interests expressed in the source code parameters. There's no UI to speak of. I have a web app that shows the recording and transcoding pipeline, etc. but it's more for monitoring the system.

With dozens of MPEG transport streams and 100s of programs, the receiver is almost always recording something. It records things opportunistically and then prioritizes transcoding and making them available against a queue full of raw recordings.

MPEG TS Parser

This parser is capable of grabbing a raw MPEG2 transport stream and demuxing it to pull out a given video/audio stream as well as program information.

It parses the PAT and PMT tables to find the elementary streams contained within and can dump those to an abstract VideoStorage which in this implementation stores to a NAT on the local network.

It also parses program information from EIT and PSIP tables, however most of the program information is acquired out-of-band from a TV Listings API service.

Listings

Uses the (now defunct :/) Schedules Direct API to gather EPG listings for the given provider/zip code.

Stitcher

Video channels are constantly recorded and everything from a given channel is stored in a collection of video chunks. The stitcher periodically matches up the Guide listings with the raw video streams from the VideoStorage and stitches them together into video files.

Orchestration / JobQueue

The system can utilize many different computers talking to multiple QAM tuners. There can also be multiple transcoders etc. The code uses both AWS and GCP (nee Azure) to maintain a central Job Queue for recording/transcoding etc.

homerun-dvr's People

Contributors

chrisyerga avatar

Watchers

 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.