Flussonic Media Server documentation


UDP Multicast with Constant Bitrate

We assume that you have read the section about sending UDP multicast, because this page is an extension of that basic article.

Here you can learn how to configure Flussonic Media Server to send UDP multicast video suitable for muxing to DVB-C and DVB-S streamers.

Media requirements

When you want to send video to DVB-C network or even to satellite you can get a strict hardware requirement: constant bitrate (really constant, not constant average) and frequent PCR insertion.

Sometimes you can meet very smart DVB muxer that will be able to merge streams together and allow variable bitrate, but usually you need to fill your dedicated band with MPEG-TS bytes.

Flussonic Media Server can do it by adding zero padding that cannot be added by headend.

Also this device will require sending PCR (stream timing) very often: up to once per 20 ms, so it may happen that we will need to put 2 PCR during single frame.

This is also possible with Flussonic Media Server.


Configure UDP push in stream with several options:

stream ort {
 url hls://provider.iptv/ort/index.m3u8;
 push udp://;

Here you tell to pad bitrate up to 2200 kbit per second and put PCR each 20 milliseconds.

If an input stream has a bitrate that is too high (higher than specified in the parameter cbr) or too uneven, it can cause buffer overflow. To avoid errors, subscribe to the event udp_pusher_does_not_fit_cbr . Also, there will be log messages about unsuitable bitrate of the input stream.

Identifiers of tables in MPEG-TS streams

You can specify arbitrary ID for tables in an MPEG-TS stream by using the mpegts_pids option:

stream ort {
  url hls://provider.iptv/ort/index.m3u8;
  mpegts_pids pmt=4095 sdt=0x12 v1=211 v2=212 a0=220 t0=16#fb;
  meta program_id "10";
  provider Flussonic;
  push udp://;

You can set PID for PMT, SDT, video tracks, audio tracks, and subtitles. Tracks are numbered starting from 1. So, a1=123 sets the PID for the first audio track. To set a basic PID for tracks of a certain type, use 0. For example, t0=100 sets the PID=101 for the first subtitles track, PID=102 for the second subtitles track, and so on. You can use decimal PID numbers (by default) or use the prefix 0x for hexadecimal numbers.

The meta program_id option sets the program identifier, which is the service id value from the SDT.

The provider Flussonic option sets the title of the program provider, which is the service_provider from the SDT.