Hi Andy,
While it is not possible to use ngrp directly on the edge, it is possible to specify an alternate protocol, domain name & port when making the request to the origin server to get the jwplayer.smil url.
http://<transcoder-ip>:1935/live/ngrp:mySteam_all/jwplayer.smil?protocol=rtmp&domain=<edge-ip>
The application name cannot be changed so must match on both the origin & edge. The edge application should be configured as a normal edge application.
This will return a JW Player smil file with the edge rtmp address set in the smil.
A similar approach will not work for http ABR so you still need the smil file on the edge for this to work. With the smil on the edge, it makes sense to just use that instead of the above example.
For dynamic startup on the edge, you should use a slightly different approach to what Richard linked to. That approach is really for when you need the streams locked on the edge for some reason (such as recording or push publish etc) rather than for normal playback.
For dynamic startup, you need to configure the origin server to do the http packetizing.
Step 2 in the example.
<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>
On the edges, you do need the stream type set to liverepeater-edge so that the edges will automatically connect to the origin(s) when the stream is requested.
Step 3 in the example.
<StreamType>liverepeater-edge</StreamType>
So that the http streams on the edge will work, you need to configure the edge LiveStreamPacketizers as repeaters.
Step 4 in the example.
<LiveStreamPacketizers>cupertinostreamingrepeater,smoothstreamingrepeater,sanjosestreamingrepeater</LiveStreamPacketizers>
Steps 5 is still the same. You do need to create the stream files that map to the appropriate origin streams. The .stream files can reference multiple origin servers by separating each server url with a pipe |
character. You can also use the Stream Name Alias AddOn or api here in place of stream files.
Step 6 is the same. You do need a local smil file. The smil file only needs to be created once and only needs updating if the source streams on the origin change settings.
Step 7 is not needed as the edge streams will be started dynamically on request.
Step 8. When you start the origin and start transcoding, the http packetizers will run and the streams will be packetized. When a stream is started on the edge, a mediaCaster will be started to connect to the same stream on the origin. If the edge stream is a http stream, it will connect to the origin and retrieve the packetized chunks.
If the stream request is an http smil request then each stream in the smil will be connected and locked on so that the packetized chunks are available when they are requested without having to start the mediacaster at that time.
For similar requests with RTMP streams, the player must make a request to FCSubscribe for each stream in the smil. This will lock them on. It makes a similar request to FCUnSubscribe when it has finished. JW Player will do this automatically by setting rtmp.subscribe in the player configuration.
This method of Origin /Edge configuration is outlined in How to configure a live stream repeater.https://www.wowza.com/docs/how-to-configure-a-live-stream-repeater
Roger.