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

Streaming to different devices (RTMP/HLS/RTSP) using Wowza


Hi,

I need JW6 to serve a video stream to a variety of different devices (Desktop/Flash, iOS, RTSP). I do not want to provide a progressive download fallback (HTML5) since the stream is (pseudo-)protected and should not be downloadable. I'm using the latest version of Wowza. Furthermore, I'd like to provide adaptive streams for different bandwidths.

After reading all the support information here on longtailvideo.com, I think I want playlists and SMIL manifests.

Since the solution I put together is not fully working, I'd like to know if I'm looking in the wrong direction, though some of the problems I encounter are probably Wowza-related.

This is what I have (the "zzzzzzzz" is some auth code I use to restrict playback):

bc.. jwplayer("id").setup({
playlist: [{
image: "posterfile.jpg",
sources: [{
file: "https://cms.example.com/smil.php?type=rtmp&videofile=folder/file.mp4&auth=zzzzzzzz",
type: "rtmp"
},{
file: "https://cms.example.com/smil.php?type=hls&videofile=folder/file.mp4&auth=zzzzzzzz",
type: "hls"
},{
file: "rtsp://wowza.example.com:1935/app/_definst_/mp4:zzzzzzzz/folder/file.mp4",
type: "rtsp"
}]
}],
primary: "flash",
width: "640",
height: "360"
});



The SMIL files are generated on the fly using a PHP script that redirects after the SMIL has been created. For "type=rtmp" this would be bc.. http://wowza.example.com:1935/app/_definst_/smil:smilfolder/file.smil/jwplayer.smil
and for "type=hls" the script would point to bc.. http://wowza.example.com:1935/app/_definst_/smil:smilfolder/file.smil/playlist.m3u8.
Notably, the SMIL files and the video files are not in the same directory on the Wowza server.

The problem now is that when I append "/jwplayer.smil" to have Wowza prepare the manifests, it alters my SMIL file so the path to the video files always include the folder name where the SMIL resides. I can avoid that when I simply put the generated SMIL files to a location outside the Wowza server (and omit the "/jwplayer.smil", of course). But for the HLS manifests, the player won't even start. On an iPad, the player pops up for a second, and then disappears. I haven't tested the RTSP, but during my earlier tests, this variant has never been a problem.

Finally, my questions:
1. Is the above playlist/js valid, or is there a better way to serve the different devices?
2. What is the benefit of appending "/jwplayer.smil" to the SMIL file when using Wowza?
3. Maybe this is too Wowza-specific, but are there any known issues when the SMIL is in a different directory than the video files?

If it helps any further, I can provide the SMIL files.

Thanks a lot,
martin

1 Community Answers

Remco van Bree

JW Player Support Agent  
1 rated :

1. RTSP files do nothing within the setup block, as RTSP is no a valid streaming protocol. If you wish to have a RTSP fallback you should set it up as is mentioned in this document: http://www.longtailvideo.com/support/jw-player/28856/using-apple-hls-streaming (See the HLS Live on Android section).
2. I have no idea. Have you compared the difference between the two smil files?
3. The problem with HLS manifests is that the HLS manifest files tend to contain a relative path from the m3u8 file to the actual stream segments, so if you move the manifest file, the relative path between manifest and segment files get broken.

This question has received the maximum number of answers.