Skip to content

How to delay TV playback in another time zone

Many TV channel broadcasts are intended for only one time zone, and if we speak about Russia, it is often only the Moscow time zone.

If you want to distribute the same channel to users in Germany or in the USA, you will face a problem: people have an early morning, but they are already watching evening broadcasts.

Flussonic can delay stream playback for a few hours, so that people in a different time zone watch the "Good morning" broadcast in the morning, and not late at night.

There are several technical ways to organize this in Flussonic Media Server, based on the frequency of addressing various channels in different time zones.
The difference between these methods is the number of times that the archive is read for delayed playback of the channel.
You can start playing the delayed stream, and the archive will be read once, regardless of the number of people willing to watch it, or you can provide personalized URLs to the users, and the archive will be read for each user individually.

If about 250 channels are written, and you wish to broadcast to 3 locations, you will get a total of 250 channels to write, and 750 to read. It makes sense to leave some channels constantly running, and start some channels only at the request of users.

Delayed stream

Assume we have a configured channel:

stream channel {
  input fake://fake;
  dvr /storage 1d;
}

The channel must have a configured archive (dvr /storage 1d in the example). Now we can create a second stream:

stream channel-1hour {
  input timeshift://channel/3600;
}

This stream will read from the archive and play the video with a one-hour (3,600 seconds) delay.

You can create as many streams as you wish.

Flussonic DVR Timeshift

Personal access to the archive

If you have a configured stream:

stream example_stream {
  input udp://239.1.2.3:1234;
  dvr /storage 1d;
}

it can be assigned URL:

  • for playback over HTTP MPEG-TS:
http://FLUSSONIC-IP/example_stream/timeshift_rel/3600
  • for playback over HLS:
http://FLUSSONIC-IP/example_stream/timeshift_rel-3600.m3u8

Multilingual channels can be assigned for set-top boxes:

http://FLUSSONIC-IP/example_stream/timeshift_rel_video-3600.m3u8

In this case, each client will individually read the archive. This method should be used for rarely used combinations of a channel and a time zone.

Skipping gaps in timeshift playlist

If you have gaps in your archive (e.g. if your source was down for couple of minutes), then at reaching that gap Flussonic Media Server will return empty playlist while playing HLS timeshift.

If it's acceptable to break the time shift and skip this gap, you may specify playlist URL with the ignore_gaps=true parameter:

https://FLUSSONIC-IP/STREAM_NAME/timeshift_abs-123123123.m3u8?ignore_gaps=true

timeshift_abs HLS URLs present a great difficulty caused by the nature of the HLS Protocol. The fact is that Flussonic can only probabilistically join separate HTTP requests into the same session. Flussonic believes that the session is the same, if for two queries, client IP address, channel name, query protocol and the token match. In case of several consecutive timeshift_abs requests, Flussonic will decide that it's the same session, in the end, it may distort viewing. To avoid this, a new token should be passed in the timeshift_abs request.

A simpler variant is requesting an HTTP-MPEGTS http://FLUSSONIC-IP/STREAM_NAME/timeshift_abs-1429829884.ts. However, the HTTP MPEGTS option denies access to multi-bitrate.