Feature #6275

Drop/split-off re-encoding

Added by Oliver Schinagl 6 months ago. Updated 6 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


TVHeadend is a great program and I'm a happy user of over 13 years. However with the long developer struggles, I wonder if it where not an idea, to strip off all the 'non-core' parts.

TVHeadend in its heart, is a DVB stream passthrough/redistributor. And while I'm sure there's some solid use-cases to be able to do real-time transcoding, it makes the platform in itself a lot more complex then it has to be. Non-realtime transcoding can be
one with external tools anyway.

One can argue, its there already, it works of course; but it still needs to be maintained and tested.

Just spitballing and a take in starting the discussion.



Updated by Nina Kampusch 6 months ago

Transcoding is pretty much handled by ffmpeg/libx264 etc, you can disable them at compile-time. There would be no advantage in removing the working code over that, but it would break many systems.


Updated by Flole Systems 6 months ago

The entire codebase is complex and takes a lot of time to get familiar with. That's what makes it extremely complicated to introduce changes. Even removing functionality isn't that simple, so most likely this is not a good idea.


Updated by Oliver Schinagl 6 months ago

Fair point, but the goal is of course not to break anybodies systems :) Using external tooling however, e.g. call ffmpeg as an external application.

I agree that things being complex is not helping and risks breaking things, but removing something (and fully depending on external components) can also mean long term, tvheadend becomes slightly simpler.


Updated by Flole Systems 6 months ago

The huge disadvantage of using the spawn profile with external ffmpeg is that it takes significantly longer as it does some stream analysis, buffering and so on. The internal transcoding works significantly better.

I've also thought about using libraries for certain things (http server, http client, rtsp server, rtsp client) but doing so would reduce features (as we have some workarounds for certain rtsp servers in place) and is a huge task.

Also available in: Atom PDF