Manage Real-Time Live Zones (rtmp and rtsp)

Any configuration changes are applied to the CDN immediately

Hibernia CDN _ Edit Live Zone - Mozilla Firefox 2016-10-06 14.11.35

Table Of Contents

General Settings

This section holds the basic information that is required for your real-time live zone.

ID

This is the numeric ID for this specific real-time live zone. When using the API, this ID is used when referring to this zone.

Name

This section allows you to set or change the name of your real-time live zone

Owner

Only available for Account Managers

This allows you to change the owner of the respective live zone. As an account manager you can assign a live zone to another user or account manager. Press “Change” to bring up the following dialogue

change-owner

Select the user you want to assign as the new owner of the live zone and press “Set New Owner” to confirm and save your selection.

Mode

This section allows you to set or change the mode of your real-time live zone.

Unrestricted

Unrestricted mode allows you to publish to any stream name within your zone without having to create a Publish Point first. Use this option if you require publishing a large amount of streams, don’t want to maintain the list of publish points, and don’t mind sharing the same Publish Key between the streams. It is highly recommended to set a publish key when using unrestricted mode so that it cannot be published to by unauthorised people.

Restricted

Restricted mode requires each stream to be predefined in the Publish Points list. Use this option if you don’t mind updating the list when streams need to be added or removed, or when you require each stream to have it’s own publish key.

Publish Key

This section allows you to set the global publish key for your live zone. This is the publish key which will be applied to unrestricted zones and will be the default publish key for restricted publish points which don’t have a publish key set of their own.

Encrypted URL Key

This allows you to set the encryption key used to create encrypted links for your live zone.

Encrypted links are a way of protecting your content from “hot-linking” and also setting variables on a per-link basis.

See Encrypted Links Introduction for more information

Clicking the Edit-button will present you with the shown interface, allowing you to set the key to be used.

site-enc-key

Leave the field blank if you do not want to use encrypted links.

Enter the chosen key in the text field and press to save.

Blacklist

This allows you to make the live zone inaccessible to certain countries (based on Geo-IP). Users in any of the countries that have been blacklisted will not be allowed to view any content on this specific live zone.

Clicking the Edit-button will present you with the following dialogue, allowing you to select which countries to blacklist:

Scroll down and select the countries that you want to blacklist one by one.

blacklist3

blacklist2

You can start typing the country name to filter the selection.

Whitelist

This allows you to restrict access to ALL countries except the ones that are whitelisted.

Selection of the countries works the same as described in the previous section about the Blacklisting feature.

Referer

If set, this can restrict playing of the live zone from only this page url e.g. http://www.yoursite.com/videos

Notes

General field for your own use

Client API Notify URL

By setting this to a url of your own api, a POST request to this url will happen on every play/publish event, in json format with various information below. The events are triggered on every client connection individually.

Wowza

call: the event that was triggered – PLAY_START, PLAY_UPDATE (triggered every 5 minutes), PLAY_STOP or PUSH_START, PUSH_UPDATE (triggered every 5 minutes), PUSH_STOP
format: the protocol requested – RTMP or RTSP
incoming_bytes_total: the number of incoming bytes since the client first connected
incoming_bytes: the number of incoming bytes since the last event
outgoing_bytes_total: the number of outgoing bytes since the client first connected
outgoing_bytes: the number of outgoing bytes since the last event
ip: the client ip address
stream_name: the stream name used internally (account_user_livezone_publishpoint)
original_name: the stream name which the client connected to, which can include the publish key or encrypted url
tag: the tag variable which can be set by encrypted links to track the connection externally (e.g. a userid)

Wowza JSON Examples

PLAY_START

{"format":"RTSP","incoming_bytes":0,"outgoing_bytes_total":0,"tag":"","ip":"1.2.3.4","outgoing_bytes":0,"call":"PLAY_START","incoming_bytes_total":0,"stream_name":"1_990_stack_test","original_name":"stack_test"}

PLAY_UPDATE

{"tag":"","call":"PLAY_UPDATE","ip":"1.2.3.4","incoming_bytes":2552,"outgoing_bytes_total":56689448,"incoming_bytes_total":2552,"stream_name":"1_990_stack_test","outgoing_bytes":56689448}

PLAY_STOP

{"format":"RTSP","incoming_bytes":1400,"outgoing_bytes_total":88841322,"tag":"","ip":"1.2.3.4","outgoing_bytes":32151874,"call":"PLAY_STOP","incoming_bytes_total":3952,"stream_name":"1_990_stack_test","original_name":"stack_test"}

PUSH_START

{"tag":"","call":"PUSH_START","ip":"1.2.3.4","incoming_bytes":0,"outgoing_bytes_total":0,"incoming_bytes_total":0,"stream_name":"1_990_stack_test","outgoing_bytes":0}

Nginx

call: the event that was triggered – play, update_play (triggered every 5 minutes), play_done or publish, update_publish (triggered every 5 minutes), publish_done
in_bytes: the number of incoming bytes since the client first connected
in_bytes_last_notify: the number of incoming bytes since the last event
out_bytes: the number of outgoing bytes since the client first connected
out_bytes_last_notify: the number of outgoing bytes since the last event
addr: the client ip address
name: the stream name which the client connected to, which can include the publish key or encrypted url
tag: the tag variable which can be set by encrypted links to track the connection externally (e.g. a userid)
tcurl: address and application which the client connected to
flashver: client flash version
clientid: nginx client id
swfurl: client swf url
app: nginx application name
pageurl: client page url

Nginx JSON Examples

play

{“tcurl”:”rtmp://cdn.stackcdn.io/live/”,”in_bytes”:”554″,”out_bytes”:”292″,”flashver”:”WIN 23,0,0,162″,”app”:”live”,”start”:”0″,”reset”:”0″,”duration”:”0″,”tag”:””,”out_bytes_last_notify”:”0″,”addr”:”1.2.3.4″,”call”:”play”,”clientid”:”4285″,”swfurl”:”http://demo.stackcdn.io/demo/jwplayer/jwplayer.flash.swf”,”pageurl”:”http://demo.stackcdn.io/player?stream=rtmp%3A%2F%2Fcdn.stackcdn.io%2Flive%2Fstack_test”,”name”:”stack_test”,”in_bytes_last_notify”:”0″}

update_play

{“out_bytes_last_notify”:”292″,”tcurl”:”rtmp://cdn.stackcdn.io/live/”,”in_bytes”:”891″,”tag”:””,”in_bytes_last_notify”:”554″,”out_bytes”:”167453918″,”flashver”:”WIN 23,0,0,162″,”clientid”:”4285″,”addr”:”1.2.3.4″,”timestamp”:”676798″,”pageurl”:”http://demo.stackcdn.io/player?stream=rtmp%3A%2F%2Fcdn.stackcdn.io%2Flive%2Fstack_test”,”swfurl”:”http://demo.stackcdn.io/demo/jwplayer/jwplayer.flash.swf”,”app”:”live”,”time”:”300″,”name”:”stack_test”,”call”:”update_play”}

play_done

{“tcurl”:”rtmp://cdn.stackcdn.io/live/”,”in_bytes”:”1208″,”tag”:””,”in_bytes_last_notify”:”891″,”out_bytes”:”308157476″,”flashver”:”WIN 23,0,0,162″,”addr”:”1.2.3.4″,”out_bytes_last_notify”:”167453918″,”clientid”:”4285″,”swfurl”:”http://demo.stackcdn.io/demo/jwplayer/jwplayer.flash.swf”,”app”:”live”,”pageurl”:”http://demo.stackcdn.io/player?stream=rtmp%3A%2F%2Fcdn.stackcdn.io%2Flive%2Fstack_test”,”name”:”stack_test”,”call”:”play_done”}

publish

{“tcurl”:”rtmp://cdn.stackcdn.io/live”,”in_bytes”:”310″,”tag”:””,”in_bytes_last_notify”:”0″,”out_bytes”:”292″,”flashver”:””,”out_bytes_last_notify”:”0″,”addr”:”1.2.3.4″,”type”:”live”,”clientid”:”4280″,”swfurl”:””,”app”:”live”,”pageurl”:””,”name”:”stack_test_123xyz”,”call”:”publish”}

update_publish

{“out_bytes_last_notify”:”292″,”tcurl”:”rtmp://cdn.stackcdn.io/live”,”in_bytes”:”147337412″,”tag”:””,”in_bytes_last_notify”:”310″,”out_bytes”:”409″,”flashver”:””,”clientid”:”4280″,”addr”:”1.2.3.4″,”timestamp”:”299799″,”pageurl”:””,”swfurl”:””,”app”:”live”,”time”:”300″,”name”:”stack_test_123xyz”,”call”:”update_publish”}

publish_done

{“tcurl”:”rtmp://cdn.stackcdn.io/live”,”in_bytes”:”521558926″,”tag”:””,”in_bytes_last_notify”:”507796232″,”out_bytes”:”409″,”flashver”:””,”addr”:”1.2.3.4″,”out_bytes_last_notify”:”409″,”clientid”:”4280″,”swfurl”:””,”app”:”live”,”pageurl”:””,”name”:”stack_test_123xyz”,”call”:”publish_done”}

Do not disconnect clients when publishing stops

By default, when a publisher stops pushing to a stream, the viewers of the stream will be disconnected. Enabling this option will keep those clients connected to the stream, so that they can automatically continue playing when the publisher starts pushing again

Manually disconnect all clients from Publish Point

This will disconnect all clients (publisher and players) from a specific publish point

Publish & Pull

Publish Points

If your live zone is in restricted mode, then you must configure the individual streams here in order to push to the cdn

  • Name: the name of the publish point
  • Publish Key: the publish key required to publish to this publish point
  • Notes: used for your own notes

Pull Points

Use these if you require streams to be pulled from an external source

  • Name: the name of the pull point
  • Origin URL: the address of the rtmp:// or rtsp:// stream to pull
  • Notes: used for your own notes

This section will generate the links you need to publish and play. To learn more about which to use (nginx or wowza) please see detailed explanation here Live Streaming Introduction