Name is required.
Email address is required.
Invalid email address
Answer is required.
Exceeding max length of 5KB

Dynamic Streaming with RTMP & Amazon EC2 Wowza


I haven't been able to get JWPlayer to do a dynamic bit-rate switching stream, either VOD or live.

My JWPlayer embed:
bc.. <script type='text/javascript'>
jwplayer('my-video').setup({
file: 'rtmp://ec2-xxx-xx-xx-xxx.compute-1.amazonaws.com/vod/myManifest.smil',
image: 'http://www.longtailvideo.com/content/images/jw-player/lWMJeVvV-876.jpg',
width: '640',
height: '360'
});
</script>



My smil manifest, copied almost verbatim from the example:
bc.. <smil>
<head>
<meta base="rtmp://ec2-xxx-xx-xx-xxx.compute-1.amazonaws.com/vod/" />
</head>
<body>
<switch>
<video src="myVideoHi.mp4" height="720" system-bitrate="1628" width="720" />
<video src="myVideoMi.mp4" height="360" system-bitrate="628" width="360" />
<video src="myVideoLo.mp4" height="180" system-bitrate="428" width="240" />
</switch>
</body>
</smil>



The player doesn't give any error messages, but the little circle just spins and never loads a video. I know the videos are there because I've loaded them one at a time (not using the smil) and they play just fine. I also put the most permissive crossdomain.xml from your examples on the EC2 instance, so I don't think that's the issue.

Here's a link to a test site where this happens: http://nccsite.com/events/sasha_temp/test-site/

13 Community Answers

Ethan Feldman

JW Player Support Agent  
0 rated :

Your smil file should be referenced via http, not rtmp.

JW Player

User  
0 rated :

Thanks for the quick reply. I changed the reference to http as you suggested, but unfortunately it still seems to be displaying the same behavior.

My JWPlayer embed now reads:
bc.. <script type='text/javascript'>
jwplayer('my-video').setup({
file: 'http://ec2-xxx-xx-xx-xxx.compute-1.amazonaws.com/vod/myManifest.smil',
image: 'http://www.longtailvideo.com/content/images/jw-player/lWMJeVvV-876.jpg',
width: '640',
height: '360'
});
</script>



I said it wasn't displaying an error message before, but now it spins and spins, but when I refresh it it shows an error of "Manifest not found or invalid"

Ethan Feldman

JW Player Support Agent  
0 rated :

Well, this file doesn’t seem to load if I go to it in a browser – http://ec2-184-73-76-184.compute-1.amazonaws.com/vod/myManifest.smil

JW Player

User  
-1 rated :

That is a good point. I will admit, I'm not super savvy on exactly how these Wowza EC2 instances are set up, so do you know if it's even possible to do dynamic streaming using this particular CDN (or possibly another one of Amazon's web services)?

Do you think it would make more sense to store the smil locally on the website that JWPlayer is embedded on instead of the streaming server?

Ethan Feldman

JW Player Support Agent  
0 rated :

I would try that, yes.

JW Player

User  
0 rated :

Hmm, I tried hosting the same .smil locally on the same page as the JWPlayer, but now it just gives me a Error Loading Stream: Manifest Not Found or Invalid error.

Ethan Feldman

JW Player Support Agent  
0 rated :

Can I see an example?

JW Player

User  
0 rated :

Whoops, sorry, same test site: http://nccsite.com/events/sasha_temp/test-site/

Ethan Feldman

JW Player Support Agent  
0 rated :

The streams seem fine, but I do get the error.

I would use this file as a template – http://www.longtailvideo.com/sites/default/files/jw6-manifest.smil

JW Player

User  
0 rated :

I used one of your example files as a template, which was nearly identical to that file (aside from stream name and file names), so I'm not sure I'd get any benefit from working from that file.

Ethan Feldman

JW Player Support Agent  
0 rated :

This is the one we use for our sample here – http://www.longtailvideo.com/support/jw-player/29365/rtmp-dynamic-stream, I would try using this file first, then adding your stream to it.

JW Player

User  
0 rated :

Got it working, I think the problem lay in the fact that I was using an older Wowza instance (2.2 or something like that). I started up a Wowza version 3.6 instance, and after I appended /jwplayer.smil to the file: code, and making sure I used http to find the .smil instead of rtmp, it worked like a charm.

This post was what clued me into what I was doing wrong:
http://www.wowza.com/forums/showthread.php?25749-Dynamic-Streaming-with-JW-Player-6

I even got it working with a live version, just changed the base stream in the .smil to rtmp://[wowza-address]/live as well as the corresponding code on the website looking for the .smil. For both live and vod, you can store the .smil in the /content folder.

Thanks for the help Ethan, I know it's probably not in your job description to troubleshoot issues with Wowza itself.

Ethan Feldman

JW Player Support Agent  
0 rated :

Np :)

This question has received the maximum number of answers.