Flussonic Media Server documentation

Data source types

A source is from where Flussonic receives a stream of video data. It can be an IP camera, satellite headend, HTTP server, and so on. To specify a source of a stream, you need to know its address and the video protocol over which it's delivered to Flussonic, in other words, a stream's URL.

To send video data between Flussonic Media Servers, use the Flussonic's internal protocol M4F. For example, use it to replicate a DVR archive or to restream individual streams in a cluster.

Important. Flussonic Media Server does not support the http data source type, and specifying URL as http://host/path will result in error. A more detailed URL is required that specifies HTTP MPEG-TS or HLS, or other protocol. This page gives you examples of URLs for various protocols.

Important. Do not specify a file on the server as a source. Broadcasting of files is configured another way — learn more in VOD file broadcasting.

M4F

We recommend using M4F to send video from Flussonic to another Flussonic.

  • m4f://hostname:port/stream — syntax
  • m4f://flussonic.example.com/channel_01 — example

About the M4F protocol

MPEG-TS over HTTP

  • tshttp://hostname:port/stream — syntax (ingest over HTTP)
  • tshttps://hostname:port/stream — syntax (ingest over HTTPS)
  • tshttp://192.168.100.1/worldnews.ts — an example of a real link

An HTTP MPEG-TS data source is, for example, VLC.

MPEG-TS over UDP

  • udp://239.255.1.1:5500 — a multicast URL
  • udp://239.255.1.1:5500/192.168.10.1 — the ingest of multicast through the specified interface
  • udp://192.168.0.1:12345 — a unicast URL

MPEG-TS over TCP

A TCP MPEG-TS data source.

  • tstcp://192.168.0.1:54321

HLS

  • hls://hostname/path/to/manifest.m3u8 — syntax
  • hls://10.0.0.1/news.m3u8 — an example of this URL
  • hls://example.com/news/index.m3u8 — an example of this URL
  • hlss://hostname/path/to/manifest.m3u8 — ingest over HTTPS
  • hls2://example.com/news/index.m3u8 — the ingest of a multi-bitrate HLS source.

HLS source may be a plain HTTP server that sends files from disk. In this case if packager is dead new files will not appear. Flussonic Media Server will wait for new segments to appear till timeout, then restart this source and fetch again existing segments. It is possible to look at playlist modification time, but it is not very reliable. Flussonic Media Server has enabled by default protection from this situation, this feature is called "stalled check" and it downloads only new segments after first fetch, so no segments from first fetch will not be used.

Sometimes you may be sure that your source is not a plain HTTP server, but a streaming server that will not serve outdated segments and you want to enable HLS source in ondemand configuration.

With this protection startup will be extremely slow: Flussonic Media Server will wait for at least 2-3 new segments.

You can disable this stale protection with option: skip_stalled_check=true;

Use it on your own risk because you can get into situation when old content will repeat again and again.

stream ort {
  url hls://source:8080/stream/index.m3u8 skip_stalled_check=true;
}

As with MPEG-TS HTTP user_agent option available:

hls://source:8080/stream/index.m3u8 user_agent="Custom Agent v1.2"

RTSP

Specifying an RTSP camera's IP address is not enough to get the video from it. The path is also required. The path is not always provided in the manual, so you might need to contact the camera's seller or manufacturer.

  • rtsp://hostname/path — syntax
  • rtsp://user:password@ip/path — a URL with authorization
  • rtsp2://hostname/path — enables audio transcoding in AAC. Learn more
  • rtsp://192.168.0.100/h264 — an example of a real link

RTMP

  • rtmp://hostname/application/stream
  • rtmp://10.0.0.1/live/news

RTMP protocol requires that an RTMP URL has at least two segments. The first segment (application) is by default used as the name of the RTMP application.

If the name of the RTMP application on the server is made up of more than one segment, add two slashes to the URL inorder to explicitly divide the RTMP application and stream name.

MPEG-TS options

For tshttp://, udp://, tstcp:// sources you can use additional options:

Ingest of a certain MPEG-TS program and PIDs:

stream ort {
  url tshttp://source:8080/stream program=21 pids=45,46,47;
}

Reject subtitles

Starting from version 18.08, Flussonic Media Server by default accepts subtitles of published streams. This is true for streams with either static or dynamic names. So you do not need to set allow_subtitles=true explicitly.

However, if you do not need subtitles for a stream, set this option to false:

stream ort {
  url tshttp://source/stream allow_subtitles=false;
}

Note. For live published streams (streams with dynamic names), subtitles are always enabled. The option allow_subtitles is not supported for live publishings, so you cannot disable subtitles in this case.

Enable NIT table bypass:

stream ort {
  url tshttp://source:8080/stream bypass_nit=true;
}

Enable this option if you want to get EPG data on Flussonic output.

HTTP options

When connecting to a stream over HTTP, you can set the User-Agent HTTP header with the user_agent option:

tshttp://hostname:port/stream user_agent="VLC"

Custom HTTP header, for example 'Referer':

stream example {
  url tshttp://source:8080/stream header.Referer=https://flussonic.com;
}

Timeshift

  • timeshift://stream/3600

Timeshift. Allows to create a stream identical to the stream but with a delay of 3600 seconds (one hour).

SHOUTcast

  • shout://source:8080

SHOUTcast data source.

Mixer

  • mixer://stream1,stream2

This configuration allows to add the audio track from the second stream to the video track form the first stream. Learn more

Mosaic

  • mosaic://cam1,cam2,cam3,cam4?fps=20&preset=ultrafast&bitrate=1024k&size=340x240&mosaic_size=4

This configuration allows to display a number of streams on one screen. This is called a mosaic. Learn more