Settings (server and client) for fullHD Streaming

marcw

Member
Hello!
I want to set up a video live streaming like the FP demo "streamer". But what I could not find are the parameters I have to set on server and on client side to offer a hight quality fullHD video stream. Where can I find informations about recommended values and how can I implement such values into the client code? (flashphoner-webrtc-only.js)

Also I would be happy if someone is available for a small project job to set up this streaming correctly. I am sure I will get in other trouble later even if I have found out this parameter setting thing. And yes, I already sent an email to the FP support but still got no answer.

Best regards
Marc
 

Max

Administrator
Staff member
Hello

This is how you can proceed with full-hd streaming.

1. Make sure your cam supports full HD resolution (1920 x 1080) with good FPS (25 more).
2. Try our sample Media Devices
Setup:
- resolution
- bitrate
- fps
- TCP protocol to avoid packet lost for high-resolution stream
3. Publish stream
4. Play stream using Player sample.
Make sure you have a good quality and FPS.
5. Implement the same in your app using Web SDK

Note. If you publish a high-resolution stream it is important to control bitrate. The bitrate should be high enough to ensure publishing with good FPS (without freezes). You can see actual bitrate in the stats (see attached screenshot).

Docs


Media Devices Settings for HD publishing

webrtc-hd-stream.png

Player sample

webrtc-hd-stream-player.png

Bitrate statistics in the Media Devices

webrtc-hd-stream-bitrate.png
 

marcw

Member
I thank you very much, Max! I was able to find the correct bitrate now. Obviously my server settings had a limit which I unfortunately put in some time ago.
But may I ask: I want a really simple streamer/player. Is it really necessary to use all that dozens of css and js scripts which are part in every demo? If I want to change just the position of the streamer preview player I must regard 5 or more css and js files so that easy adjustments are hard work. I would like to use the code of the "min" folder but here I don't know how I can add parameter values to the streaming client: Transport (TCP instead of UDP as you recommended), FPS, Content Hint. Bitrate I think can be set directly from server side. By the way: Why can I set/change the bitrate for the client in the Media Devices demo? I thought the bitrate comes as it delivered from the server. Or is it kind of a feedback to the server that the client cannot process more than x bit/s?

Yes, I know, the pain in the ass from Germany is back! :)

Best regards
Marc

P.S.: Wasn't here another post recommending an external server hoster? Seems that kind of post is not very welcome here. Anayway, I wanted to thank the poster for his tipp but it would be a shame to own such a masterpiece of technology (at least the licence to use it) but renting a 3rd party service. ;) There may be time critical situations where that is absolutely a good alternative but that's not the case here.
 
Last edited:

Max

Administrator
Staff member
But may I ask: I want a really simple streamer/player. Is it really necessary to use all that dozens of css and js scripts which are part in every demo? If I want to change just the position of the streamer preview player I must regard 5 or more css and js files so that easy adjustments are hard work.
You can use a minimal example from our site with step by step instructions (and here is the source code to download).
I don't know how I can add parameter values to the streaming client: Transport (TCP instead of UDP as you recommended), FPS, Content Hint.
You should use stream options and constraints in the example recommended above:
Code:
function publishStream() {
    stream = session.createStream({
        name: "stream",
        display: document.getElementById("publish"),
        transport: "TCP",
        videoContentHint: "motion"
        constraints: {
              video: {
                   width: 1920,
                   height: 1080,
                   frameRate: 25,
                   minBitrate: 1500
                   maxBitrate: 2500
              },
              audio: true
        }
    });
    stream.publish();
}
Also, please look at this page full of code snippets.
By the way: Why can I set/change the bitrate for the client in the Media Devices demo? I thought the bitrate comes as it delivered from the server.
Yes, player receives a stream with bitrate which is published.
But, on publisher side, a browser sets a current bitrate value according to channel quality
Also, if bitrate thresholds are set on client or server side, the server sends to client a special commands (REMB) to increase bitrate if it drops below a minimal threshold or to decrease bitrate if it exceeds a maximal threshold. The difference between client and server settings is the server settings are apllied to all the clients (not only to FullHD publishers). That's why we recommend to set bitrate on client side.
Yes, I know, the pain in the ass from Germany is back! :)
You're welcome :)
P.S.: Wasn't here another post recommending an external server hoster? Seems that kind of post is not very welcome here
Unfortunately, that was just a spammer. We do not ban for a good recommendations.
 
Last edited:
Top