Multi-bitrate HLS streaming from Amazon S3 with smil

Hi, I have an iOS app and JWPlayer on the web site that stream videos from S3 via Wowza vods3 app with media cache set up for S3, using .smil file(stored on S3)

Streaming works for the most part, but I have a couple of issues:

  1. Smil file caching: apparently, the .smil file is cached in the MediaCache. The problem is that if I change the .smil file on S3(or even delete it), the only way for the iOS app to see the changes is TO RESTART THE WHOLE STREAMING ENGINE. Restarting vods3 app does not work. I’m guessing that disabling and re-enabling the MediaCache will also work, but that still does not seem appropriate.

  2. When iOS app streams with HLS, I have playback issues that don’t seem to happen when streaming via RTMP(JWPlayer). It seems that HLS always starts with the highest bitrate and then chokes and switches down and when that happens, the video in the app stops for a couple of seconds and then resumes, sometimes with artifacts. When I watch the Monitoring for the vods3 app in Wowza Engine Manager, the start “out” bitrate is very high for HLS, 10 to 17 Mbps and then jumps down, usually at the same time the playback problems occur.

Anyone has any insights for this?

My .smil file contents:

Hi,

Either of the following module suggestions should work for what you are trying to do.

You can store the smil files in a subfolder in the content folder on the Wowza Streaming Engine and the content is stored in s3. The subfolder name matches the mediaCache prefix for the s3.

This article has more details: Media Cache implementation that will first try to access content locally before getting it from a remote source (MediaCacheLocalFirstRandomAccessReader)

You can have a separate mediaCache source for the smil files. This source would have very low ttl settings so that the smil file could be updated.

See this article: How to use different Media Cache Sources for SMIL files and VOD assets (MediaCacheSourceSelector)

Daren