We are building some reporting/analytics functionality into Ensemble Video by ingesting Wowza logs and analyzing the fields. We were originally told that the DESTROY event will contain an accurate summary of any given streaming session (duration in particular). However we found that when the player we use (flowplayer) auto buffers, Wowza sees that as a valid play event and starts recording the duration; even though the video is not actually playing. We have investigated turning auto buffering off, but that will effect our software in some other ways.
We were just wondering if there was a log configuration or something you guys knew of that could help us to get a more accurate streaming duration for a clip. We have found that we can take cs bytes against total bytes for each play event and then get the percentage, allowing us to then apply that percentage to total duration and come up with a fairly accurate duration - this is needed for ABR in particular.
Any advice you can offer us would be greatly appreciated.
There are a few things to consider when using the logs in this manner.
The buffers can skew the results and duration times are basically how long it takes for a stream to finish transferring to the player rather than how long the client watched it.
Duration includes connection time, so connect -> play -> stop -> disconnect the time is from connection time to disconnect. Also, jumping around, seeks etc will effect the accuracy of the duration time.
Basically, the logs aren't meant for accurate auditing of stream duration. You might look into the x-spos (position in milliseconds in the stream) as this may be more accurate than say x-duration when it gets written out at "stream stop" event.
You may need to write a custom module for this, or seek a consultant here: