[NUUG video] Creating a web based TV station using liquidsoap and SOAP

Petter Reinholdtsen pere at hungry.com
Tue Apr 13 07:53:32 CEST 2010

[David Baelde]
> In order to allow such rich treatments, liquidsoap internally only
> deals with raw streams. As a result, it must always decode and
> re-encode everything. If you can't live with that, then liquidsoap
> isn't for you, at least for now (I have been pressed several times
> to support encoded streams, but I never found a convincing pratical
> solution).

The reason I would like it to avoid recompression is to make sure the
machine have enough resources to do its job.  At the moment my test
laptop uses 40% CPU on a quarter of the intended resolution, and it
was said that liquidsoap would probably not be able to go beyon
500x500, while we would really like to work at 720x432 for the
Internet stream and a lot higher for the broadcast stream.

> The resolution and framerate settings that you've seen
> (frame.video.width/height/rate) are global parameters determining
> liquidsoap's internal (raw) video streaming format. They cannot be
> realistically guessed from the input: the input might be a remote
> stream, or an heterogeneous list of files -- worse, in some cases
> the input's format has to be guessed from the global one, e.g. when
> synthesizing video (silence, noise, fixed color) from nothing.

Sure, I can imagine a lot of cases where it would be hard to guess the
value, but for the simple and I suspect common case, it would be
fairly simple to get values from the first input file.  When
liquidsoap is asked to work as a pass-throught processor, it is very
surprising to see that the resolution, framerate and bandwidth have
changed in the output.

> This part might be more or less difficult depending on your precise
> needs and the guarantees on that XML file: is it possible that one
> files hasn't ended when another starts? what do you want to do in
> that case?

Yes, this is possible, and in this case the playing file should be
interrupted and the other file started.  If someone try to schedule a
40 minute program in a 30 minute slot, the next program will not be
pushed back and the incorrectly scheduled program will only get their
allocated 30 minute slot.

Happy hacking,
Petter Reinholdtsen

More information about the video mailing list