Best Practices of Instances, stream names, and Event Names
Hello!
I've worked with FMIS a good bit relaying streams to various CDNs.
The guy working before me always created a new Application for every stream. This was due to each stream needing its own configuration. This was also before MBR streams were popular or even around. It wasn't till i started to implement HDS that i see you could just share the same application for many streams. I don't have any resources at work that can give me any insight on the correct usuage of FMS Applications other than what the other guy left behind.
My question is when do you use different instances of an application, or can you just keep using "_definst_"?
Scenerio example:
Sports Event with 3 camera angles all using 4 bitrates each.
do i just use the default instance for the whole event like so:
rtmp://server/livepkgr/bitrate_1?adbe-live-event=camera1
rtmp://server/livepkgr/bitrate_2?adbe-live-event=camera1
rtmp://server/livepkgr/bitrate_3?adbe-live-event=camera1
rtmp://server/livepkgr/bitrate_4?adbe-live-event=camera1
rtmp://server/livepkgr/bitrate_1?adbe-live-event=camera2
rtmp://server/livepkgr/bitrate_2?adbe-live-event=camera2
rtmp://server/livepkgr/bitrate_3?adbe-live-event=camera2
rtmp://server/livepkgr/bitrate_4?adbe-live-event=camera2
rtmp://server/livepkgr/bitrate_1?adbe-live-event=camera3
rtmp://server/livepkgr/bitrate_2?adbe-live-event=camera3
rtmp://server/livepkgr/bitrate_3?adbe-live-event=camera3
rtmp://server/livepkgr/bitrate_4?adbe-live-event=camera3
which produces:
http://server/hds-live/livepkgr/_definst_/camera1/bitrate_1.f4m
.
.
.
http://server/hds-live/livepkgr/_definst_/camera3/bitrate_4.f4m
etc
and i would update each Manifest.xml correctly and use:
http://server/hds-live/livepkgr/_definst_/camera1.f4m
http://server/hds-live/livepkgr/_definst_/camera2.f4m
http://server/hds-live/livepkgr/_definst_/camera3.f4m
I was curious if this is a correction assumption. I've done most of my events using Akamai's HDN HTTP delivery and i'm trying to relate to their scheme which is:
rtmp://server/entrypoint/eventname_camera_bitrate@1234
so event above would look like:
rtmp://server/entrypoint/sportingevent_camera1_1000@1234
I'm having a hard time translating from their scheme to Best Practices for HDS.
Should I be using a instance to help seperate some of this? What would be an actual scenerio like above that you would use a instance?
My first inclination was to use an instance to seperate web (HDS) and mobile (HLS). I like to use different configurations for each. Mainly i stick to Apples 7 Layer model from their best practices.
This is how i first assumed you could do a single camera event:
rtmp://server/livepkgr/web/layer_2200?adbe-live-event=liveevent
rtmp://server/livepkgr/web/layer_1600?adbe-live-event=liveevent
rtmp://server/livepkgr/web/layer_1200?adbe-live-event=liveevent
rtmp://server/livepkgr/web/layer_900?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_1800?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_1200?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_600?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_400?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_200?adbe-live-event=liveevent
rtmp://server/livepkgr/mobile/layer_110?adbe-live-event=liveevent&adbe-audio-stream-name=layer_40
This way the manifest files seperate and not have the web viewers suffer with iOS devices limitation.
With sample above, would i change the "liveevent" to "cameraX" to allow for a multi camera event? or would that confuse the DVR functionality in a player?
I REALLY appreciate any insight before i get "set in my ways" using HTTP delivery.
thanks!
leah
