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: s3.example.com and MediaCacheSource configured with prefix “s3”:
http
http://s3.example.com.s3.amazonaws.com/
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
Richard
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:
http://[wowza-ip-address]:1935/vod/smil:sample.smil/manifest.f4m
The correct URL for you is:
http://{streaming-server}:1935/vod/_definst_/smil:s3/test.smil/manifest.f4m
Richard
Great! Thanks for the update
Richard
Are you using “smil:” prefix? Show the names ou are using for the smil and for one of the working .mp4 files
Richard
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:
http://[wowza-ec2-address]:1935/vods3/smil:amazons3/sample.smil/manifest.f4m
Richard
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 support@wowza.com
Richard
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
Richard
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: http://sourceforge.net/apps/mediawiki/osmf.adobe/index.php?title=SMIL_Support
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.
Update
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[our-vod.s3.amazonaws.com/stream.smil]: 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: java.io.IOException: MediaCacheRandomAccessReader.open: 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:
[HTML]
[/HTML]
Any help would be appreciated. Thanks in advance.
Is this what you mean?
The smil file is called ‘stream.smil’ and is publicly accessable here: https://s3-ap-southeast-2.amazonaws.com/our-vod/stream.smil
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: https://s3-ap-southeast-2.amazonaws.com/our-vod/700kb/AU064593-M.mp4
This is the link construction:
http://ec2-54-252-81-153.ap-southeast-2.compute.amazonaws.com:1935/vods3/definst/smil:amazons3/our-vod/stream.smil/playlist.m3u8
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[our-vod.s3.amazonaws.com/stream.smil]: HTTP response: 307
and this will not work with MediaCache.
Andrew.
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