The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This module describes the Cisco StadiumVision Mobile SDK Release 2.0 integration with EVS C-Cast.
EVS C-Cast is a platform for making replay video clips available to client endpoints over an IP network such as the Internet. The traditional way of scaling C-Cast content delivery to a large number of clients is by using a Content Delivery Network (CDN). The CDN caches the content closer to the client, and thus avoids the need for every client to reach back and retrieve the content from the C-Cast Central server. This offloads the C-Cast Central server and reduces the amount of duplicate content that has to traverse the network.
When used for offering replays to mobile devices at a live event in a stadium the scaling challenge is different. The bottleneck in a stadium is the wifi network that serves tens of thousands of fans with mobile devices. In this scenario a CDN is unable to help, and other scaling options are needed. Cisco StadiumVision Mobile Scalable File Distribution (SFD) is one such option. SFD uses multicast over wifi to scale distribution of the Ccast video files. Multicast works much like over the air broadcast TV where your local TV station sends out a single signal that anyone in the area can receive with an antenna on the roof. From a load perspective it makes no difference to the TV broadcaster if ten subscribers or ten thousand subscribers are watching. Cisco StadiumVision Mobile SFD works in a similar ways by sending the files as a single multicast transmission, and any number of mobile devices in the stadium can listen to that signal, receive the file and cache it in local storage for later use.
From the perspective of the C-Cast mobile app there is very little difference between the CDN and Cisco StadiumVision Mobile SFD scenarios. In both cases the exact same Ccast XML timeline file provides the app with the info it needs to make replays available to the user. And in both cases the timeline file references the exact same media files. The only difference between the two scenarios is the transport mechanism used to deliver the files to the mobile device. And this difference is largely, but not completely, hidden by the Cisco StadiumVision Mobile SDK. To obtain the EVS C-Cast API, contact James Stellphlug ( j.stellpflug@evs.com ) with a short note stating you are developing an app to consume C-Cast clips in a Cisco StadiumVision Mobile venue. The steps below describe a high level workflow of how an Cisco StadiumVision Mobile powered C-Cast app gains access to the XML timeline and media files.
1. Register a callback to be notified when a file channel becomes available, using addFileChannelDelegate.
2. Register to receive the channel notification using
[svm addFileChannelObserver:self forChannelName:@"something"]
3. (Optional) Listen for file channel list updates and potentially register using
- (void)onFileChannelListUpdated:(NSMutableDictionary *)fileChannelList {}
4. Handle the file reception (movies/thumbnails/timeline) using
- (void)onFile:(NSData *)file withChannelName:(NSString *)channelName {}
5. Check if a file channel is already available, using getFileChannelListArray
6. If a channel is already available, or when a callback notification is received, register a file channel observer, using addFileChannelObserver
7. Check if a file with the name ccast-timeline.xml is already available, using getFileDistributionLocalFilename
8. If ccast-timeline.xml is not yet available wait for additional files to arrive, using onFile(). Each time onFile() is called do a corresponding check with getFileDistributionLocalFilename to see if the new file is ccast-timeline.xml
9. Once ccast-timeline.xml has been received parse it using the steps in chapter 5 (How to build the media path) of the Ccast API spec, and build the media path for all media files
10. For each file media path remove the path prefix so that only the filename remains. I.e. http://www.mydomain.com/videos/abc/def/ghi/abcdefghijklmnopqrstuvwxyz123456_hls-ipad.m3u8 becomes abcdefghijklmnopqrstuvwxyz123456_hls-ipad.m3u8
11. For each filename cycle through onFile() and getFileDistributionLocalFilename until all files have been received.
12. Be prepared for ccast-timeline.xml to change at any time. Repeat steps 6-8 whenever it changes.