Wowza Community

HLS playback from multiple origins

Apologies if this information is readily available elsewhere, but I cannot find it. If you have an origin/edge structure, but you have many origins, is there a way around having to use the OriginURL property to get an HLS stream on an edge to playback off the correct origin?

So far it seems the only way is to cluster particular edges around certain origins so that the OriginURL property is always correct, but we’d like a way to programmatically do it like we do for RTMP so that we can use any edge no matter which origin the stream is on.

This is for live streaming with dynamic stream names.

Yes, you can use a .stream file.

https://www.wowza.com/docs/how-to-create-and-use-stream-files-in-wowza-streaming-engine-manager

The OriginURL is put together with the stream name when Wowza re-stream an origin stream from an edge. In the .stream file you will combine them. This is much more flexible, you can source re-stream from many origins in one application with different .stream files

Richard

Hi,

In this case, you would be best to use the IMediaStreamNameAliasProvider(2) interface. This is the underlying api that the stream files mechanism uses.

You would define the full origin url in the resolveStreamAlias methods. The resolvePlayAlias methods are used to remap the names from the player and control playback if needed.

Roger.

Yes, you can use a .stream file.

https://www.wowza.com/docs/how-to-create-and-use-stream-files-in-wowza-streaming-engine-manager

The OriginURL is put together with the stream name when Wowza re-stream an origin stream from an edge. In the .stream file you will combine them. This is much more flexible, you can source re-stream from many origins in one application with different .stream files

Richard

I’m sorry, I got the impression from .stream files that they cannot support dynamic stream files. To quote the page you linked…

Wowza Streaming Engine can now use the MediaCaster system to re-stream the live streams. The MediaCaster system can pull the streams that are referenced in a stream file and make them available for streaming to all player technologies supported by the server. The MediaCaster system works on-demand. When the first request is received from a player for the stream file, the source stream referenced in the file is made available to the player. When the last player stops viewing the stream, the MediaCaster system waits for a timeout period. If no other players request the file, the stream is stopped and isn’t available for streaming until another request is made.

Sorry if I am missing something obvious, but this really makes it sound like the stream names are hard coded. How would this work for dynamically named live streams? Does it have to do with the combining you speak of?

Hi,

In this case, you would be best to use the IMediaStreamNameAliasProvider(2) interface. This is the underlying api that the stream files mechanism uses.

You would define the full origin url in the resolveStreamAlias methods. The resolvePlayAlias methods are used to remap the names from the player and control playback if needed.

Roger.

Thank you, that definitely seems like what I was looking for.