Wowza Community

MediaCache, Adaptive Streaming, AWS S3

I’ve setup MediaCache on a dedicated linux box to stream vod content from Amazon S3 through Wozwa 3. Let’s say I have a S3 Bucket: and MediaCacheSource configured with prefix “s3”:



and an application named “vod”.

Playing mp4 files stored in this bucket with Strobe Media Playback and other Flash players works fine. If I create the f4m manifest files manually, RTMP based Dynamic streaming works as expected as well.

Unfortunately I am having problems getting SMIL files stored on S3 to work. As I’ve read in other posts, it should be simple as putting the SMIL files in the same folder as the media files and point to them with a relative path.

So I have a sample SMIL file named test.smil and two mp4 files stored on S3, all in the same folder:

Is the bucket or item have limiited ACL access? You have to add AWS keys to /conf/MediaCache.xml. Then restart. Or give change the bucket permission to Everyone = read


Hm, what is the smil plugin? I have not needed to use that to playback using a Wowza .smil file and the Flash Media Playback player. Just follow this guide:

Note at bottom:

Flash HTTP (Sanjose) Streaming

This player can also play Flash HTTP (Sanjose) streams. Check the box labeled "In the Flash Media Playback configurator, you have to check “Are you using HTTP Streaming or Flash Access 2.0?”. Then enter a URL like:


The correct URL for you is:



Great! Thanks for the update


Are you using “smil:” prefix? Show the names ou are using for the smil and for one of the working .mp4 files


What is the issue? The smil file is stored on S3 along-side the vod files that it references. The smil itself will be unchanged. You will playback the smil with smil: prefix and the same amazons3 prefix as single file. Like this:



Are you using the “vods3” application that is included in default Wowza EC2 AMIs? You have to use that or another application that is configured for MediaCache.

Re-start Wowza and test what you are doing. Then zip up /conf and current access log showing the re-start and test to


Is the bucket or item have limiited ACL access? You have to add AWS keys to /conf/MediaCache.xml. Then restart. Or give change the bucket permission to Everyone = read


Thanks, Richard. All items in bucket are public. AWS Keys are set correctly. Streaming video files from S3 through Media Cache is working. Just having issues working with SMIL files. It works if I create the f4m manifest files from within my web app. I can live with that for RTMP dynamic streaming… In order to avoid additional encoding jobs I’d really like to use Wowza for adaptive streaming on mobile devices (m3u8) as well.

Thanks again for your advice, Richard. Actually I haven’t investigated the source for the smil plugin, yet:

Unfortunately, I am still having no luck. Wowza responds with an empty media list. I’ll further investigate my setup on another freshly installed self-hosted linux box plus an EC2 instance.


Well, everything works fine on an EC2 instance. No smill_plugin needed for Strobe Media Playback. Works on my dedicated linux boxes as well: Just copied the Application.xml and MediaCache.xml settings from EC2 and tweaked according to my needs. Seems like I made a mistake while setting up MediaCache in the first step. Just wondering why it worked for mp4 files but not smill…

Thank you very much for your patience and fast support!

I am having a similar issue. I have successfully streamed from ec2/s3 using the default vods3 application. Now I am trying to use a smil file for HLS, however the server error log says:

WARN	server	comment	2013-04-04	06:43:04	-	-	-	-	-	25.363	-	-	-	-	-	-	-	-	MediaCacheItemHTTPImpl.getItemInfo[]: HTTP response: 307
WARN	server	comment	2013-04-04	06:43:04	-	-	-	-	-	25.364	-	-	-	-	-	-	-	-	MediaCacheItemBase.init: Item does not exist: amazons3/our-vod/stream.smil
WARN	server	comment	2013-04-04	06:43:04	-	-	-	-	-	25.364	-	-	-	-	-	-	-	amazons3/our-vod/stream.smiopen: Item not in cache: amazons3/our-vod/stream.smil
WARN	server	comment	2013-04-04	06:43:04	-	-	-	-	-	25.365	-	-	-	-	-	-	-	-	HTTPStreamerCupertinoIndexPlaylist.indexFile[vods3/_definst_/smil:amazons3/our-vod/stream.smil]: MediaList is empty.

Yes, I have quadruple-checked the permissions for the bucket and the smil file and its all public. What else could it be?

The smil file lives in a bucket called ‘our-vod’. Along side the smil file in the ‘our-vod’ bucket are 3 folders: ‘1mb’, ‘700kb’, ‘300kb’. This is what the smil looks like:


Is this what you mean?

The smil file is called ‘stream.smil’ and is publicly accessable here:

The video file is called ‘AU064593-M.mp4’ and there is a copy (encoded accordingly) in each of the folders ‘1mb’, ‘700kb’, ‘300kb’.

Here is one of the video files publicly accessible:

This is the link construction:

Aah ok, so I’m not going crazy. The problem is that Amazon are using a redirect in my bucket, which MediaCache doesn’t like?

The problem is the bucket is responding with a 307

WARN server comment 2013-04-04 06:43:04 - - - - - 25.363 - - - - - - - - MediaCacheItemHTTPImpl.getItemInfo[]: HTTP response: 307

and this will not work with MediaCache.


Phaex i am currently hosting my video transcoded in 3 diffrent bitrates and mp4 format stored in s3 . can you please help in providing the detail how you were able to call smil file from s3 storage for HLS delivery . i am using ec2 instance running wowza application. For single bitrate delivery there is no issue and media cache works fine but for multibitrate delivery using HLS protocol i am facing the issue .

i did the same but the video is not getting played. where as if i put the files in wowza content folder it works fine . there seems to be some issue with smil file reference on s3 storage which media cache is not able to fetch properly