Wowza Community

Dynamic Bandwidth Detection (BWCheck)

I am not able to run these demo in BWChecker

CtoSBWCheck.html and bwcheck.html

Do you have AS3 and flex version of it

for CtoSBWCheck reponse

It outputs the following data:

kbitDown:10828

deltaDown:779.616

deltaTime:0.072

latency:36

How can I calculate out of this the bandwidth:

Is deltaTime in milliseconds ? is it the time it took to download ?

What is deltaDown? is it in bits, in Milliseconds ?

Is latency in milliseconds ? How do I add it to the equation ?

kbitDown is the total amount of bits sent, right ?

Thanks

Thanks Richard, but I was aiming at something else.

Suppose I have a myFIle that I send to the user,

and i want to calculate how long it will take for the user to recieve it.

I know my file size, but i dont know what`s the user download speed.

How can I tell the user`s download speed by this data, please ?

Thanks Richard so if

kbitDown:1000

it means it loads 1000kbit per second ?

and if , then i want to send a file of 1000kbit to the user

it will be transferred in:

1 second + latency ?

You must have had someone else in mind when sending this message, Richard.

Which makes a lot of sense to me, Considering you must be answering such a multitude of questions by so many users.

Please believe me I have no issue with the QoS metrics built-in to Flash, nor the NetStream.info.

Im simply trying to use this BWcheck module as a means of claculating how long will it take the user to recieve a specific big file (the files not being sent with NetStream at all).

Neither did I assume that latency and kBitDown are the same.

I just attempted to determine if the formula for calculating how long a file will take to be transferred (assuming bandwidth is not constant) would be:

Latency + kbitDown*fileSize in kbits 

Is my formula correct ?

If not, what would be the right formula, please ?

Also, you said:

“latency” is how long will it take to start playing

The speed at which it will play once it starts is indicated by kbitDown

In what units is measured latency ? seconds ?

and in what units is measured kbitDown? kbits per second ?

Many thanks

Please excuse me.

Surely there`s no need for any excuse at all…

Quite the opposite - Thank you for your swift responses and assistance !

Thank you for asserting my assumption about the units AND for correcting my formula. Of course it`s divided and not multiplied.

Again , many thanks - you`ve helped me a great deal.

Please just another question:

Is KILO calculated in the wowza server in standard notation as in 1 Kilobit= 1024 bits or in IEEE notation as in 1 Kilobit=1000bits, please ?

Hi Richard, I cant get the LIVE RTMP stream switching… I followed guides from flow player and cant get live rtmp working. VOD RMTP works, but not LIVE…

Our task is to have one page for the viewer to enter and depending on the load of his/her connection it will choose between 3 streams 700 kbps, 400, and 150…

As far as I’ve been able to determine dynamic switching doesn’t work for live streams due to the lack the ability to buffer ahead of play back time.

The details of my findings are here:-

http://www.wowza.com/forums/showthread.php?t=8378

I am using the bandwidth checker for my video streaming application and it is working well. However, I would like to show a progress bar while this is going on. Suggestions on how to do it? I am specifically looking for how to get the amount of bandwidth measurement data already received by flash client at a periodic interval.

Thanks,

Vivek

Richard,

By result set you mean the payload used for bw estimation? I was hoping there is a way I can the amount of data received so far, in actionscript, on the player side. And divide that by the total number of bytes expected. Is that possible? If so, could you point me on how to do this?

Vivek

Do I need to use this module when trying to get JW player 5.1 and Wowza with Dynamic Bitrate Switching to work?

It seems the sample code is not up to date with the jar file… when using the jar the bw is reported to the client once… when using the code above compiled into a module… the bw call fires twice.

Also… one small suggestion… :slight_smile:

When using the jar out of the box it might be nice to wrap the onConnect check in a try catch so that this error doesn’t occur if the second buy acomplia param isn’t passed:

invoke(onConnect): java.lang.ClassCastException: com.wowza.wms.amf.AMFDataObj cannot be cast to com.wowza.wms.amf.AMFDataItem: com.wowza.wms.amf.AMFDataList.getBoolean(null:-1)

Thanks!

Jake

Thank you jakehilton for your prompt and complete response!

You wrote:

There are AS2 and AS3 Flash client examples in the examples folder of Wowza Server:

[install-dir]/examples/BWCheck/client

and

[install-dir]/examples/BWCheck/clientAS2

I cant find the /examples directory! Do you have a link to the code, the as file?

I keep reading getting BWCheck on JW Player, Anyway we can get it on FlowPlayer. I found this link…

http://flowplayer.org/plugins/streaming/bwcheck.html

But this is for files that have been encoded and already present in 3 different bitrates…

I was wondering how we can do this in flowplayer and to be able to use it LIVE through RTMP…

thanks Richard,

Is there anything that can be done where bwcheck constantly checks the connection of the client and automatically during a live event seamlesly changes the different stream bitrate, without no user input, or any buffering issues, depending on clients viewer bandwidth we have, either 700 to 400 to 200 kbps.

Thanks Richard,

I know that this may be a silly question, but what about WireCast, We are currently streaming 3 different streams, and are streaming to our wowza, is that capable of having aligned keyframes? …

We would use expression encoder, but it encodes in wmv and publishes to windows media services server, which im guessing that wowza does not support…

We grabbed a copy of Wirecast, for iphone streaming. Cuz FMLE encodes in mp3 and when its played back on iphone, audio becomes choppy…

What other RTMP broadcasting software would you recommend for this purpose, besides FMLE and supports iPhone streaming.

Thanks… Since we already have wirecast, we’ll probably just wait for 4.0 to come out very soon, and upgrade to that…

Hi Richard, I cant get the LIVE RTMP stream switching… I followed guides from flow player and cant get live rtmp working. VOD RMTP works, but not LIVE…

Our task is to have one page for the viewer to enter and depending on the load of his/her connection it will choose between 3 streams 700 kbps, 400, and 150…

There is a pre-built version of this module you can download from the first post in this thread, so you don’t need to build this code in the IDE.

Awesome, lets clarify this in the first post

JW Player’s dynamic streaming does use the BWCheck if it is present, and it is good idea to have it, it will work better. It does this at connection time only to decide which level to start with, then uses other methods (NetStream.info object/QoS metrics) during the streaming session to change levels.

No, this does not happen. Wowza does no transcoding. You need multiple versions of a video or live stream to do this. (I’m curious what you read that gave you that understanding?)

It wasn’t on the boards, it was a misunderstanding during a presales call. Where can I find more info about setting up the files? I am assuming it is going to auto search for either a different filename Extremist.flv, Extremist-LQ.flv, Extremist-HD.flv… or a folder location ./HD/Extremist.flv, LQ/Extremist.flv…

Also, do I also follow the longtail guide? it would seriously complicate my code if I have to change an outside file on a dynamically generated file.