gocast
gocast copied to clipboard
Replace Worker with Runner
Motivation and Context
The current worker implementation is hard to maintain, we therefore want to replace it with the new runner. The goal is to have a clean code base that replaces everything the worker does.
todos:
- All API endpoints the current worker offers should be available in the runner
- [x] Request Stream
- [x] Request Stream End
- [ ] Generate live preview
- [ ] Generate Section images
- [ ] Delete Section images (low prio)
- [ ] Combine Thumbnails
- All API endpoints TUM-Live currently offers for the runner
- [x] Register
- [x] Heartbeat (nice to have)
- [ ] request selfstream
- [ ] notify vodUpload finished
- [ ] Notify Silence results
- [x] Notify Stream Started
- [ ] Notify Thumbnails finished
- [ ] Get stream info for upload
- [ ] notify Transcoding Failure
Functionality wise, the runner should:
- When request stream is called:
- grab the url with ffmpeg and create a hls stream on disk and notify tum-live that the stream is available
- After the stream is done, convert the files, append them together and upload them to the vod service.
- create a thumbnail and the thumnails for the seekbar
- detect silences in the video and send them to tum-live (not high prio for now)
- when a vod is uploaded, everything that happens after a livestream should also happen to the uploaded file
- when a selfstreamer starts streaming
- ask tum-live for the details of the token and continue just like with a normal stream