I’m really, really new to Wowza in general, which doesn’t help, but I’ve got a clear task at hand. We’re feeding a live stream and we need the web clients to determine what the time is in the video. We figure we can continuously feed a server timestamp into the feed using metadata/id3.
The webpage will use rtmp and hls as well as jw player so we’re trying to avoid using a custom flash player (so any netconnection.call()s are out the window).
But we figured “how hard can it be to make a module send out timestamps”. Turns out it’s not easy, at least not with very sparse knowledge. I’ve read the articles but unfortunately those all seem to rely on the client making netconnection-calls.
Any help on this would be greatly appreciated, thanks =)
It’s a tricky question, and something we’ve been struggling with a bit with ourselves (you can have a look a my previous forum posts for a bit of a log of the struggle). I figure I’ll post some of my notes about how we’ve approached it on the hope that others will as well.
My simple recommendation would be this: If you run the stream and control the video input yourself, you can probably mux meta data into the stream and get it out in the other side without worrying too much about Wowza modules. If not, you’ll need Wowza to do some heavy lifting.
The solution we’ve ended up relying on is HLS-only and uses a header in the spec called EXT-X-PROGRAM-DATE-TIME. Basically, this is a line in the HLS manifest that identifies the exact time the first chunk in the chunk list was created. Unfortunately, Wowza doesn’t support this feature natively (I’d love for it to do so though!?) so instead we’ve set up a module that indexes when each chunk is created (both live and dvr) – and then hook into the HTTP delivery to add the extra line to the manifest (you can see roughly how this can be achieved in a unrelated piece of code posted here https://github.com/availo/wowza-vhost-loadbalancer/blob/master/src/com/availo/wms/httpstreamer/HTTPStreamerAdapterCupertinoRedirector.java, but even this approach has a few potential quirks that we haven’t figured out yet.)
Reading out the standard HLS header though is another story on top of it, which involves custom HLS modules in Flash and an extra AJAX request in HTML5 browsers to read and parse the manifest.
So: Any hope we’ll see the program data time as a standard feature in Wowza? Any one come up with a lighter solution than the one described above?
Oh ok well you posted in the forum for Streaming Engine JAVA API so that’s why there is confusion. Wowza Streaming Cloud is Wowza Video. There is no way to do that outside of Engine, so you may need to pay for some custom work to be done.
You can post in Wowza Hire a Consultant forum if you want to.