tvkitchen / countertop

The entry point for developers who want to set up a TV Kitchen.
https://tv.kitchen
GNU Lesser General Public License v3.0
6 stars 2 forks source link

Demonstrate ffmpeg proxying of external to internal stream #41

Closed reefdog closed 4 years ago

reefdog commented 4 years ago

Description

This PR adds FFmpeg to our tech stack and demonstrates a very simple script that takes an input address (file or network stream) and proxies it through FFmpeg to an available internal network stream, configurable via .env.

To accomplish that though, it adds a bunch (possibly too much) of support infrastructure.

Due Diligence Checklist

Steps to Test

  1. Modify .env to add the new variables from .env.template
  2. yarn ingest:showInternalStreamPool should list out all the address/port combinations from ☝️
  3. yarn ingest {source} should open a stream to the first port from that list; for now, a good {source} would be an HDHomeRun stream address like http://<device ip>:5004/auto/v<channel number>
  4. To verify ☝️ is happening, open a new tab and run ffplay {address} where {address} is the first address dumped out by yarn ingest:showInternalStreamPool (which is the one it will be streaming to)

Deploy Notes

  1. Must modify .env to add the new variables from .env.template
  2. Must install FFmpeg; this is outside of the scope of the instructions.

Related Issues

Related to #14

reefdog commented 4 years ago

We've decided to have the ingesters stream data into Kafka rather than via internal UDP streams, making this whole branch/exploration unneeded. :tada: