openj-gate.com

lechoixdeslibraires.com

open4u.co.uk

argosnear.me

sarf3omlat.com

opencities.ca

australia-opening-times.com

Alice is an experienced full stack developer, who is capable of writing a SAAS project framework on her favorite framework using php in a week. As for frontend, she prefers Vue.js. 

A client contacts you via Telegram, asking you to develop website that will be the meeting place for the employer and the employee to conduct an in-person interview. In-person means face-to-face, a direct video contact in real time with video and voice. “Why not use Skype?” some may ask. It just so happened that serious projects – and each startup undoubtedly considers itself a serious project – are trying to offer an internal communications service for a variety of reasons, including:

“Oh no, this HLS is killing me!” Igor said and poured some hot tea in a mug with thick walls. “Customers complain again about freezes, and we only made another release with corrections yesterday.”

Popular cloud hosting DigitalOcean has recently launched its new marketplace selling preconfigured images that can help to quickly deploy an application server. It’s much like AWS, but DO is for those already using this provider’s services. Let’s see how to deploy a simple server for WebRTC streaming with a DO account for a $10/month fee based on Flashphoner WebCallServer and how such a server can be of use.

embedding WebRTC to HLS broadcasting

Embedding of playback using the HLS technology

WebRTC streams are converted on the server side to HLS and played in a regular HLS player

Use these instructions  for quick installation and configuration of the server. In addition to that, you can connect to our demo server demo.flashphoner.com via the Websockets protocol to perform the tests.

Step-by-step instructions for embedding the player for playing streams over HLS on web page

To implement playback of WebRTC streams via HLS to your web page, you can use one of the two options below.

Option 1: Using Video.js player

The scripts necessary for further work can be downloaded from the official website of the Video.js project or from our demo-server using the links below:

 

To embed the HLS player on your web page, create two empty files hls-player-min.html and hls-player-min.js. These files will contain the minimum code for the operation of our player.

Let us examine the contents of files

hls-player-min.html

Place the necessary elements in hls-player-min.html:

1. Import the script of the Video.js player

1
2
3
<link rel="stylesheet" href="video-js.css">
<script src="video.js"></script>
<script src="videojs-hls.min.js"></script>

2. Import the script of the main API

1
<script type="text/javascript" src="https://flashphoner.com/downloads/builds/flashphoner_client/wcs_api-2.0/current/flashphoner.js"></script>

3. Import the script of the minimal player

1
<script type="text/javascript" src="hls-player-min.js"></script>

4. Initialize the API on page load

1
<body onload="initPage()">

5. Add the HTML element “Video”

1
2
3
4
<video id="remoteVideo" width="320" height="240" class="video-js vjs-default-skin"
     controls="controls"
     type="application/vnd.apple.mpegurl">
</video>

6. Add the “Play” button, clicking which will start playing the video

1
<button id="applyBtn" type="button">Play</button>

The result here is the player

before play hls player browser webRTC WCS iOS

The full code of the HTML page looks as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="video-js.css">
    <script src="video.js"></script>
    <script src="videojs-hls.min.js"></script
    <script type="text/javascript" src="https://flashphoner.com/downloads/builds/flashphoner_client/wcs_api-2.0/current/flashphoner.js"></script>
    <script type="text/javascript" src="hls-player-min.js"></script>
</head>
<body onload="initPage()">
    <video id="remoteVideo" width="320" height="240" class="video-js vjs-default-skin"
                   controls="controls"
                   type="application/vnd.apple.mpegurl">
    </video>
    <button id="applyBtn" type="button">Play</button>
</body>
</html>

hls-player-min.js

In this file, there will be requiring the following parameters

1. The path to connect to our WCS server. For correct operation, specify the address of your WCS

1
var urlServer = "https://demo.flashphoner.com:8445";

2. The name of the required stream. For correct operation, specify the name of your WebRTC stream

1
var streamName = "stream1";

3. The function then generates a reference stream for playback over HLS and starts playback in the player

1
2
3
4
5
6
7
8
9
10
var applyFn = function() {
         var streamName = "stream1";
         streamName = encodeURIComponent(streamName);
         var src = urlServer + "/" + streamName + "/" + streamName + ".m3u8";
         player.src({
             src: src,
             type: "application/vnd.apple.mpegurl"
         });
         player.play();
};

The full JavaScript code looks as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function initPage() {
    var urlServer = "https://demo.flashphoner.com:8445";
    var player = videojs('remoteVideo');
    var applyFn = function () {
        var streamName = "stream1";
        streamName = encodeURIComponent(streamName);
        var src = urlServer + "/" + streamName + "/" + streamName + ".m3u8";
        player.src({
            src: src,
            type: "application/vnd.apple.mpegurl"
        });
        player.play();
    };
    applyBtn.onclick = applyFn
}

As a result, we obtain a universal player that can play WebRTC video stream over HLS in browsers on PC and mobile devices

after play hls player browser webRTC WCS iOS

Option 2. Native player for mobile devices

To implement the WebRTC HLS player for mobile devices on our web page, create two empty files hls-min.html and hls-min.js. These files will contain the minimum code for the operation of our player.

Let us examine the contents of files

hls-min.html

We place the necessary elements in hls-min.html:

1. Import the script of the minimum player

1
<script type="text/javascript" src="hls-min.js"></script>

2. Add HTML element “Video”. We have specified a link to the stream in the properties of the element. For correct operation, replace the link “https://demo.flashphoner.com:8445/stream1/stream1.m3u8”

1
2
3
4
5
<video id="videoPlayer" width="600" height="400"
  src="https://demo.flashphoner.com:8445/stream1/stream1.m3u8"
  controls="controls"
  type="application/vnd.apple.mpegurl">
</video>

3. Add the button “Play”, clicking on which will start playback

1
<button onclick="play()">Play</button>

The result here is this player

native before play hls player browser webRTC WCS iOS

The full code of the HTML page looks as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="en">
<head>  
    <script type="text/javascript" src="hls-min.js"></script>  
</head>
 
<body>
    <video id="videoPlayer" width="600" height="400"
        src="https://demo.flashphoner.com:8445/stream1/stream1.m3u8"
        controls="controls"
        type="application/vnd.apple.mpegurl">
    </video>
    <button onclick="play()">Play</button>
</body>
</html>

hls-min.js

In this case, the script processes the click on the “Play” button and starts playback of the WebRTC stream in the player via HLS.

Let’s study the contents of the files

1. Declare a variable “video”

1
var video;

2. When you load a page, call a function that refers to the player as an HTML element

1
2
3
window.onload = function() {
     video = document.getElementById("videoPlayer");
}

3. Then create the function that starts video playback on clicking “Play” button

1
2
3
function play() {
    video.play();
}

The full JavaScript code looks as follows:

1
2
3
4
5
6
7
8
9
var video;
 
window.onload = function() {
    video = document.getElementById("videoPlayer");
}
 
function play() {
    video.play();
}

In the screenshot below, a view of the native player on iOS with playback of WebRTC stream via HLS

native after play hls player browser webRTC WCS iOS

Download Web Call Server 5

System requirements: Linux x86_64, 1 core CPU, 2 Gb RAM, Java

    Download Now    

Installation:

  1. wget https://flashphoner.com/download-wcs5.2-server.tar.gz
  2. Unpack and install using 'install.sh'
  3. Launch server using command 'service webcallserver start'
  4. Open the web interface https://host:8444 and activate your license

 

If you are using Amazon EC2, you don't need to download anything.

Launch WCS5 on Amazon EC2

 

Web Call Server Monthly Subscription

$145 per month

 

   Purchase   

 

testing WebRTC to HLS broadcasting

Testing WebRTC video stream playback in an HLS player

Send the video stream from the Google Chrome browser using WebRTC technology and play this video stream in the HLS player on the iOS device

Use these instructions for quick installation and configuration of the server. In addition to that, you can connect to our demo server demo.flashphoner.com to perform the tests. For testing, we use a virtual camera that plays a video clip

Test plan

  1. Connect to WCS server
  2. Start broadcasting a video stream from a virtual camera in Google Chrome
  3. Start playback of the broadcast stream over HLS in the Safari browser on the iOS device

 

Testing WebRTC broadcast from Chrome to iOS Safari over HLS

1. Log in to the web-interface of the server demo.flashphoner.com

Login_to_WCS

2. Select “Two-way Streaming” from the menu on the left side of the page

choose_two-way_streaming_stream_webcam_WebRTC_browser_WCS

3. Click the “Connect” button

connect_stream_webcam_WebRTC_browser_WCS

4. Verify that the status of the WCS server is “Established”. Specify a convenient stream name. We have “Stream1”. Click “Publish”

publish_stream_webcam_WebRTC_browser_WCS

5. The video stream from the webcam is displayed in the “Local” player

WCS_publishing_stream_broadcasting_safari_ios_Websocket_Canvas_WSPlayer

 

6. Open the Safari browser on your iOS device. Log in to the web-interface of the server demo.flashphoner.com and select “HLS player” from the menu on the left side of the page

 

open_HLS_player_Safari_iOS_WebRTC_to_HLS_Playback_RTMP_RTMFP_WebRTC_SIP

 

7. Enter in the “Stream” field the name of the stream that you specified in the Google Chrome browser and click the “Play” button

 

open_stream_HLS_player_Safari_iOS_WebRTC_to_HLS_Playback_RTMP_RTMFP_WebRTC_SIP

 

8. Done! The video stream that is broadcast from the Google Chrome browser is played in the Safari browser on iOS using the HLS protocol

 

play_stream_HLS_player_Safari_iOS_WebRTC_to_HLS_Playback_RTMP_RTMFP_WebRTC_SIP

 

To embed the HLS Player for iOS Safari in your website, refer to the instructions on the page Embedding

Download Web Call Server 5

System requirements: Linux x86_64, 1 core CPU, 2 Gb RAM, Java

    Download Now    

Installation:

  1. wget https://flashphoner.com/download-wcs5.2-server.tar.gz
  2. Unpack and install using 'install.sh'
  3. Launch server using command 'service webcallserver start'
  4. Open the web interface https://host:8444 and activate your license

 

If you are using Amazon EC2, you don't need to download anything.

Launch WCS5 on Amazon EC2

 

Web Call Server Monthly Subscription

$145 per month

 

   Purchase   

 

 

Latest news

  • Sales migration from Skype to Teams on 16 Apr 2025

    On April 16, 2025, we began the transition from Skype to Teams.

    On the same day, we sent out a message via our Skype account (flashphoner.com / Flashphoner Sales) informing users about the move.

    Unfortunately, this message appears to have triggered a block on our Microsoft account (Skype + Teams), most likely due to being flagged as spam. As of now, appeals have not been successful, and the account remains blocked.

    Our current contact details:

    Microsoft Teams: sales@flashphoner.com — for sales, pre-sales, and licensing inquiries

    See also updated contacts page: https://flashphoner.com/contact

  • Card payments were successfully restored on September 13, 2024

    We have restored card payments since September 13, 2024.

    Please write to sales@flashphoner.com or Skype flashphoner.com with any questions regarding payments and subscription renewals.

  • Card payments temporary unavailable since August 16, 2024

    Due to technical reasons, we are temporarily unable to accept card payments.

    For direct payments via Wire-Transfer or USDT, please contact us at:

    sales@flashphoner.com

    Sorry for the inconvenience.

    We will inform you as soon as payments are operational. Stay tuned for updates on our website.

More News