Wowza Community

How to stream "real-time"?

Hi all,

Sorry to ask this question which has been asked a million times already probably.

I am learning about streaming real-time content and have configured a stream that uses RMTP but the RMTP stream has a 4-5 second delay (As displayed by the clocks)

As you can see from the clocks that there is a distinct difference between “What is streaming” , What we are broadcasting and What we are viewing.

When i see my stream in the broadcasting screen there is 0 delay in the reactions from the stream screen and the broadcasting screen so there is “real-time” activity between those 2, So I am confused as to where the 3-5 seconds delay comes from when viewing on a client.

My PC spec is a

i7 4790k @ 4ghz

500GB Samsung Evo SSD, 3tb Sata HDD,

16GB 1866Mhz ram

MSI Gaming GTX 970 4GB

(thought i would add system specs in case my system is underpowered to do real-time streaming)

speedtest results

Would this be fast enough to achieve “real-time” or is the 3-5 second delay between what is streaming and what is seen completely unavoidable?

Also if i view the stream in VLC there is a slight delay between the “what we are viewing” screen and what VLC is showing but no where near 3-5 seconds more like 1/2 a second or less.

Many Thanks,

Hello there and welcome to the Wowza support forum.

Please take a look at this guide:

How to achieve the lowest latency from capture to playback

Kind regards,

Salvadore

Hi,

What is your player buffer setting? If you player buffer is large, the playback may start only after certain degree of the player buffer has filled up. Try to configure the player buffer to the value of 1 sec or less.

Zoran

I do not know much about Twitch, if that is what you are using. But a quick look seems to show Twitch has its own latency and means for reducing latency.

All I can suggest is to try different fps settings, try a lower complexity stream (baseline or main profile with no b-frames). And setting the NetStream.setBufferTime(seconds) to zero (in Actionscript 3 use “NetStream.bufferTime = 0;”). We have seen latency down to half a second.

Kind regards,

Salvadore

You can test different configurations with the example player that ships with Wowza. You will need Flash CS3 or higher to edit the ActionScript code in [install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/live.fla. The other option is to use JW Player.

Have you tested locally to eliminate bandwidth as an issue?

It might also help to tune your server.

How to do performance tuning

Thanks,

Salvadore

Hi Salvadore,

Thank you for the reply, I have made the changes to the new created application.xml file but the delay is still quite long and even with reducing the output from the broadcasting software to 10kb/s there is still a delay between the streaming window and the viewed window of around 5 or so seconds, The OBS software is showing me broadcasting at around 55kb/s but still the time is out of sync with what is streaming and what is shown.

Would it be my upload speed causing the slow stream response?

I am not using JW player as said in the guide there,

I was looking at some twitch streams and viewing the information in somone streaming Counter Strike the image below shows the stream information and the gameplay was really smooth this is what i am aiming to achieve in the end result.

Thanks!

I do not know much about Twitch, if that is what you are using. But a quick look seems to show Twitch has its own latency and means for reducing latency.

All I can suggest is to try different fps settings, try a lower complexity stream (baseline or main profile with no b-frames). And setting the NetStream.setBufferTime(seconds) to zero (in Actionscript 3 use “NetStream.bufferTime = 0;”). We have seen latency down to half a second.

Kind regards,

Salvadore

Can i ask where i would place this actionscript code because i am not coding my own viewer, So i am wondering where exactly i would need to put this code?

I am using the following setup

Open Broadcaster Software sends the stream to

Wowza Media Server which then streams it to either

VLC or some other viewer via RMTP (So there,s no coding involved in the stream train so to speak)

Current FPS Settings are set to 25 FPS.

Many Thanks for the replys.

I have tested the local player which ships with wowza as seen here.

I will try to edit the live.fla file also to see if that makes any difference.

Once again many thanks for the help and prompt replies.

Hi,

What is your player buffer setting? If you player buffer is large, the playback may start only after certain degree of the player buffer has filled up. Try to configure the player buffer to the value of 1 sec or less.

Zoran

I dont seem to have an option to adjust the buffer time in the player’s options anywhere. :frowning:

I think i,ll have to google VLC buffer timings or somewhere in the wowza flash player settings for buffer.]

thanks!

Ok it seem’s what I am trying to achieve just isn’t possible for the purposes of testing i set up a twitch and a hitbox account and set up a stream over those 2 hosts with their recommended settings and when i was streaming to those hosts there was roughly a 5 second delay or so when i was merely moving up and down inside the options menu for dishonored.

So it appears to me that instantaneous streaming just is not possible yet and the term “live” actually refers to something which happened anywhere from 1-10 seconds ago.

So my question is , Instantaneous streaming is it possible?

Also would there be any benefit using RTSP over RTMP?

I was unable to open the live.fla file with Adobe CS5 it said that this file was created with Adobe flash CC professional ?

I managed to open the live.fla and edit the line below

var bufferTime:Number = 3; to

var bufferTime:Number = 0;

there was still no change in the client stream, Still a delay of 5 or so seconds.

Many thanks to all who replied to this post. : )