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

onMeta question


When using onMeta with a live RTMP stream, I'm seeing two properties I was curious about: bufferfill and bandwidth.

How are these calculated ? Is the bufferfill client side ? What exactly does this parameter mean?

4 Community Answers

g...

User  
0 rated :

So lets say I have I'm seeing a bufferfill of 1.5 and over time it increases to 3. What exactly does this mean ? I see a larger bufferfill number when I decrease the RTMP bufferLength parameter to say 0.1.

g...

User  
0 rated :

Anybody ???

Todd

JW Player Support Agent  
0 rated :

Sorry for the delayed response. We do not get many RTMP and Flash questions any more, so we will have to check in with our engineers on this one.

The only configuration option I see for RTMP over at https://developer.jwplayer.com/jw-player/docs/developer-guide/customization/configuration-reference/ is

bufferlength: This option controls how much buffer, in seconds, to load before playing back. A small buffer means faster starts/seeks, but a higher chance of re-buffering.

Todd

JW Player Support Agent  
0 rated :

Here is the response from our engineers:

Both are configured from the client side inside the RTMP media provider.

private function positionInterval():void {
var pos:Number = _stream.time;
var bfr:Number = Math.round(_stream.bufferLength * 10 / _stream.bufferTime) / 10;
// Toggle between buffering and playback states
if (bfr < 0.6 && isVOD(_item.duration) && pos < _item.duration - 5 && state != PlayerState.BUFFERING) {
setState(PlayerState.BUFFERING);
if (_auto) {
swapLevel(autoLevel());
}
} else if (bfr > 0.8 && state != PlayerState.PLAYING) {
setState(PlayerState.PLAYING);
}
// Send time ticks when playing
if (state == PlayerState.PLAYING) {
_position = pos;
sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_TIME, {position: pos, duration: _item.duration});
}
// Track bandwidth if buffer is neither depleted nor filled.
if (bfr > 0.2 && bfr < 2) {
_bandwidth = Math.round(_stream.info.maxBytesPerSecond * 8 / 1024);
}
// Send out event to notify swap.
sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_META, {
metadata: {
bandwidth: _bandwidth.toString(),
qualitylevel: _level,
screenwidth: _config.width,
transitioning: _transition.toString(),
bufferfill: bfr
}
});
}

This question has received the maximum number of answers.