What Is WebRTC?

What Is WebRTC?

We’ve been hearing the name WebRTC a lot lately. In fact, WebRTC, which has been in use since 2011, is not a new technology but is a technology that provides simultaneous media communication (audio and video). The most important feature of WebRTC, which has many advantages, is that it can work directly on many popular browsers without requiring additional software.

WebRTC stands for Web Based Real Time Communication. Multimedia applications can be designed using HTML5 and Javascript APIs.

We can define the communication format used in WebRTC as peer-to-peer. This communication is directly between peers, so you don’t need any media servers. WebRTC is free and has a BSD license, so you can develop WebRTC applications for free. (For example, you can experience a video conference virtual room with WebRTC at this link)

WebRTC Supported Browsers

Nowadays, the following browsers support WebRTC:

  • PC & MAC
    • Microsoft Edge 12+
    • Google Chrome 28+
    • Mozilla Firefox 22+
    • Safari 11+
    • Opera 18+
    • Vivaldi 1.9+
  • Android
    • Google Chrome 28+
    • Mozilla Firefox 24+
    • Opera Mobile 12+
  • iOS
    • MobileSafari / WebKit (iOS 11+)
  • Chrome OS
  • Firefox OS
  • BlackBerry 10
  • Tizen 3.0

WebRTC Components

There are 3 main components in WebRTC:

1. MediaStream API

The MediaStream API provides user access to the camera, microphone or screen using javascript.

2. RTCPeerConnection API

The RTCPeerConnection API provides NAT traversal, codec processing, mutual SDP negotiation, media transmission, and secure connection functions between peers.

3. RTCDataChannel API

The RTCDataChannel API provides the functionality of establishing bidirectional data transfer channels between peers.

Establishing Peer-to-Peer Connection

Signaling is a process that forms the connection between peers. It can be achieved by WebSocket, XMPP, SIP or any other mechanism. WebRTC technology utilizes protocols such as RTP, STUN, SIP and ICE.

WebRTC Signaling Process

Session Description Protocol (SDP)

Also known as SDP, it is a protocol used to communicate media capabilities (voice codecs, IP and port information, etc.) between peers before establishing a connection and to meet each peer at a common point.

Interactive Connectivity Establishment (ICE)

ICE is a framework for the NAT traversal mechanism. ICE collects all available candidates (local IP addresses, STUN return IP addresses, and transmitted IP addresses – TURN). All collected addresses are then sent to remote peers via SDP.

STUN Server

The STUN server enables peers to find public IP addresses, the types of NAT they use, and the relationship between the Internet-side port information associated with the local port information specified by NAT.

TURN Server

When STUN usage is not possible, it is used to transmit media streams over a TURN server (you may think of it as a proxy).

WebRTC is not always peer-to-peer (P2P), but in multiple communication situations (eg video conferencing), different solutions are available. Let’s take a look at these.

Multi-Point Communication Types

1. Mesh

In the mesh network, all peers send their streams separately to other connected peers directly on the network.

All Peers Communicate With Each Other in Mesh Topology

Since this structure is completely distributed, there is no need to have any media servers in the center. The disadvantage of the mesh structure is the use of high bandwidth. In a multi-video call using a mesh structure, if each user generates a 1 Mbps stream, the amount of data sent and received per user will be 4 Mbps in each direction.

2. SFU

SFU stands for Selective Forwarding Unit. An SFU receives incoming media streams from all users and then decides which users to send to.

SFU Transfers Media To All Peers Separately

In this model, each user transmits their own generated media stream to the SFU server. The SFU server can send whoever wants the stream. In this way, bandwidth is used more effectively. Similar with the mesh example above, if each user generates a 1 Mbps stream, the total outgoing data amount per user will be 1 Mbps and the total incoming data amount will be a maximum of 4 Mbps.

3. MCU

MCU stands for Multipoint Conferencing Unit. An MCU receives incoming media streams from all users, decodes them, creates a new layout, and sends it to all users as a single stream.

MCU Combines Media of All Peers & Sends a Single Stream to Peers

The difference of this structure from SFU is that a single combined stream will be sent to each user and the total transmission and reception amount per user will be 1 Mbps in each direction. The disadvantage of this structure, as you can imagine, is the high cost of the MCU with a high processing power in the center.

Jabra Panacast Review

Jabra Panacast Review

Video conferencing is now a method of communication used in many organizations. Many vendors release many new technology products in their hardware and software portfolio. In this article, you can find a detailed review of Jabra Panacast, a 3-camera video conferencing product.

Panacast History

Panacast adventure begins in 2007 with the idea of ​​“synchronized camera array”. Stanford-based Aurangzeb Khan and his team formed Altia Systems to develop Panacast in 2011. The first prototype of Panacast was released in 2012 and followed by Panacast 2 at the beginning of 2015. Altia Systems made such a great developments in image processing area and their products are used in more than 1600 companies. In February 2019, Altia Systems was acquired by GN Group (Jabra) for 129 million USD and Panacast is added to Jabra product line. Now we are seeing Jabra as a player in the video products also.

Jabra Panacast Specifications

Here are some of the highlights of Jabra Panacast:

  • 3 pcs. 4K Resolution 13MP Camera
  • 2 Microphones
  • USB 3.0 Plug and Play
  • Windows, MacOS and Linux Compatible
  • 180 Degree Horizontal, 54 Degree Vertical Viewing Angle
  • Live HDR
  • Smart Zoom
  • Whiteboard

The Jabra Panacast is quite small in size despite what it can do. The device measures 10cm x 7cm and weighs 100 grams, smaller and lighter than the average smartphone. The box contents are also quite simple; device, USB cable, booklet and warranty certificate.

Panoramic Image – How?

Panacast uses three 13 MP resolution 4K video cameras to produce 180-degree images.

Panacast Combines 3 Videos From Cameras to Create a Panoramic Vision

Camera images are overlapped and combined by using a special image processing algorithm which runs on XILINX Artix-7 FPGA. The final image has a resolution of 3840×1080 pixels which covers a 180 degree vision. Since all this is done in less than 5 milliseconds, the user does not feel any delays during this process.

Panacast Combines Images from Cameras Through Special Algorithm (source: panacast.com)

A similar solution has already been made with Huawei 3-screen Telepresence products. By using 3 downward facing cameras and prisms, the images were superimposed to achieve a continuous image. I have to inform you that the list price of such a system is worth 300K USD. 🙂

Camera Cluster Used in Huawei Telepresence Products

The advantage of the 180-degree image is it can fit more people on a single screen. In addition, another advantage is it provides this wide angle in smaller rooms, preventing dead spaces in the meeting room. You can see what I mean better in the image below:

No Dead Spaces in Meeting Rooms with Jabra Panacast (source: intermedia-cs.co.uk)

Intelligent Zoom

Thanks to Jabra Panacast’s PC software (Panacast Vision), the camera can achieve intelligent zoom (ePTZ). This allows the camera to zoom in (or crop the image) to accommodate the speakers in front of the camera, and transmit the image as much as the people in the meeting room. This process is done dynamically according to the person entering and leaving the room to provide an optimized image.

You can see intelligent zoom feature in more detail in the following video:

Jabra Panacaast Intelligent Zoom

Whiteboard

Another innovative feature of Panacast is the whiteboard application. After you have marked the corners of your whiteboard in your meeting room with the Panacast Vision software, you can now transmit your content on the board properly. In the following video you can find out how to do this in detail:

Jabra Panacast Whiteboard Feature Allows You to Use Whiteboard in Meeting Rooms

Compatibility with Video Conferencing Systems

Since Panacast is a plug and play camera, it is compatible with most video conferencing software. You can use this product which is approved by Microsoft Teams and with many video conferencing software such as Cisco Webex, Zoom, Hangouts, Slack.

Jabra Panacast Price

You can find Jabra Panacast around 900 USD. Although it may seem high for a webcam at first, it can be a wise choice to add video conferencing to your meeting rooms when you consider what it can provide and it’s return on investment.

Windows 10X Review

Windows 10X Review

On 2nd October 2019, Microsoft announced the new operating system, Windows 10X, in its Surface event.

Launched as a more modular version of the Windows 10 operating system, Windows 10X is not reported as a new version of 10, but rather as a variation for dual-screen hardware. The main objective of 10X is to use with touch screen devices such as tablets and smartphones.

Windows 10X Features

The biggest feature of the 10X is its dual display support, which allows two applications to run at the same time (if I remember correctly, the first company did this is Samsung with Note series smartphones). It also provides a different experience to the user as it can interact between these screens. In fact, the dual screen is a practice that has been used by people who have been using multiple monitors for a long time. Microsoft has now brought this vision to laptops and tablets.

Windows 10X is an Operating System Designed for Dual Display Hardwares (source: windows.com)

In addition, Microsoft explained that the system resources are used more efficiently in Windows 10X (as they always state in their new OS releases).

10X offers a start screen just like in 10. In this menu,there are the installed applications, recently used files, and search features as you are familiar with. It is possible to go back to the desktop with the Windows logo at the bottom of the screen.

Surface Neo

The first device to use the Windows 10X operating system was announced as Surface Neo. The Surface Neo is a laptop that basically combines two 9 inches touch screen displays with two hinges. Surface Neo with Intel processor can be used as a notebook with the Surface Pen. The externally mounted magnetic keyboard also offers a complete laptop experience.

Surface Neo Can Be Used As A Laptop With Magnetic Keyboard (source: microsoft.com)

The first hardware announced that will use Windows 10X operating system is Surface Neo. Other companies that will also produce such hardwares with dual screens are such as Asus, Lenovo, Dell and HP.

Will Existing PCs Work with Windows 10X?

Microsoft announced that 10X can be used on dual-screen devices such as Surface Neo. This means that this operating system cannot be used on existing PCs. In addition, 10X can be used only on devices with Intel processors. I think 10X can also be used (somehow) by plugging two screens into your existing equipment in the future.

Last Words

We will see more clearly how Microsoft’s vision of this new operating system and hardware will make a sound in summer 2020. I hope that 10X will not share similar fate with previous Microsoft hardware and initiatives (like Zune and Windows Mobile).

Raspberry Pi 4 Review

Raspberry Pi 4 Review

Raspberry Pi Foundation announced its new Raspberry Pi 4 in June 2019.

As you know, Raspberry Pi came out as a simple mini computer designed to teach and endear children to coding. However, it has become a very versatile and popular device which can be used for many different purposes, especially for hobbyists.

Before the release of the Raspberry Pi 4, I have discussed the anticipated features of this mini computer in my previous article. This mini computer is now available and I will share my review of Pi 4 in this article.

Raspberry Pi 4 Specifications

The main features of the Pi 4 are as follows:

  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz Processor
  • 1GB, 2GB or 4GB LPDDR4 SDRAM
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac Wi-Fi, Bluetooth 5.0, BLE
  • Full Capacity Gigabit Ethernet
  • 2 USB 3.0 Ports and 2 USB 2.0 Ports
  • Standard 40 Pin GPIO Fully Compatible with Older Models
  • 2 × Micro-HDMI Port With 4Kp60 Support
  • 2 Way MIPI DSI Display Port
  • 2 Way MIPI CSI Camera Port
  • 4-Pole Stereo Audio and Composite Video Port
  • H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
  • OpenGL ES 3.0 Support
  • Micro-SD Card Slot
  • 5V DC via USB Type-C Connector
  • Power over Ethernet (PoE)
Raspberry Pi 4 Components

Let’s now look at these components in more detail.

Processor and Memory

Raspberry Pi 4 is powered by Cortex-A72 architecture. Featuring a quad-core processor running at 1.5 GHz, the Pi 4 can decode H.265 in hardware. Of course, the high processing power comes with high temperature, and during my tests I found that if you are using Pi 4 in a box, the Pi 4 CPU temperature is around 60-65 degrees celcius. If you have a CPU-intensive application, the CPU can reach up to 90 degrees celcius. That’s why we’ll see fan-cooled Pi cases more often in near future.

Previous Raspberry Pi models have been available with 512 MB or 1 GB RAM for years, which can be a problem for some applications. The Raspberry Pi 4 now comes with three different memory options: 1, 2 and 4 GB. In addition, LPDDR4 technology has now been introduced.

Raspberry Pi 4 Enhanced with Broadcom 2711 SoC

Display

Another part that has renewed in Pi 4 is the video outputs. The new Pi now has two Micro HDMI outputs, which are located on the old models HDMI port. You can use the Pi 4 as a powerful media device by connecting it to a television or monitor, with 4K 60 FPS dual video output capacity from both ports. In addition, you can do quite good visual applications such as digital signage and kiosk. For good display performance, increase the amount of GPU memory from the default value of 64MB to 512 MB by using raspi-config.

Raspberry Pi 4 Has 2 Micro HDMI ports

Network Connections and USB

The IEEE 802.11.b/g/n/ ac wireless network interface, which is introduced with the Raspberry Pi 3, is also available on the Pi 4 with a full-capacity Gigabit Ethernet port that communicates directly to SoC. Raspberry Pi 4 has now two USB 2.0 and two USB 3.0 ports with Bluetooth 5.0 BLE support.

Power Specifications

As you can imagine, the power requirement of more powerful Pi 4 has increased. Assuming you’ll use a dual HDMI port with the USB components, you’ll need to use at least a 3A charger with the new Pi. If the USB peripherals consume less than 500mA in total, a good quality 5V 2.5A power supply can also be used.

Unlike previous models, the new Pi 4 has a USB Type-C port which is used for power input, but there are some problems due to a design error related to this port. Very roughly speaking, if you use high quality Type-C cables with a chip, the power adapter assumes Pi 4 as an audio device and refuses to give more power. You can solve this problem by using a low-quality Type-C cable. A very detailed article about the Type-C problem can be found here.

Comparison with Raspberry Pi 3 Models

When we compare Raspberry Pi 4 Model B with Pi 3 Model B+ which was introduced last year, we see that there are significant differences between them. The most important of these is the amount of CPU and RAM as you can imagine. With the Broadcom 2711 SoC, the new Pi 4 proves to be a highly performance computer with a nearly three times increase in performance compared to the Pi 3, and with three different RAM options which are 1, 2 and 4GB. Another important innovation is two Micro HDMI ports with 4K support. So now you have more options for your visual projects.

Pi 3 vs. Pi 4

The following table details the main differences between the Pi 3 and Pi 4 models:

Raspberry Pi 3 BRaspberry Pi 3 B+Raspberry Pi 4 B
CPUBroadcom BCM2837A1(B0) Quad-core Cortex-A53 64-bit SoC@ 1.2GHzBroadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHzBroadcom 2711 Quad-core Cortex A72 64-bit SoC @ 1.5GHz
RAM1GB LPDDR2 SDRAM1GB LPDDR2 SDRAM1-2-4 GB LPDDR4 SDRAM
Network & Connections2.4 GHz IEEE 802.11.b/g/n/ac Wireless LAN
Bluetooth 4.1, BLE
4 x USB 2.0 Ports
2.4 and 5.0 GHz IEEE 802.11.b/g/n/ac Wireless LAN
Bluetooth 4.2, BLE
4 x USB 2.0 Ports
Gigabit Ethernet over USB 2.0 (300Mbps)
2.4 and 5.0 GHz IEEE 802.11.b/g/n/ac Wireless LAN
Bluetooth 5.0, BLE
2x USB 2.0 + 2x USB 3.0 Ports
Gigabit Ethernet
Video & Audio1 x Full Size HDMI
1 X MIPI DSI Display Port
1 X MIPI CSI Camera Port
4 Pole 3.5mm Audio + Composite Video Port
1 x Full Size HDMI
1 X MIPI DSI Display Port
1 X MIPI CSI Camera Port
4 Pole 3.5mm Audio + Composite Video Port
2 x Micro HDMI, 4K
1 X MIPI DSI Display Port
1 X MIPI CSI Camera Port
4 Pole 3.5mm Audio + Composite Video Port
MultimediaH.264, MPEG-4 Decode (1080p30)
H.264 Encode (1080p30)
OpenGL ES 1.1, 2.0
H.264, MPEG-4 Decode (1080p30)
H.264 Encode (1080p30)
OpenGL ES 1.1, 2.0
H.265 Decode (4kp60)
H.264 Decode (1080p60)
H.264 Encode (1080p30)
OpenGL ES 1.1, 2.0, 3.0
PowerMicro USB – 5V /2.5A DC Micro USB – 5V /2.5A DC
CPoE
USB Type-C 5V/3A DC
PoE

Because of the updated power input, HDMI and USB ports, the case design has changed. So if you’re going to use it with a box, you’ll need an up-to-date Pi 4 compatible box.

Raspberry Pi 4 Price

The Raspberry Pi Foundation has continued the fixed price policy tradition in this model too. It is possible to buy the starter version(1GB) for $ 35. Pricing for different RAM options can be found in the table below:

Amount of RAMPrice
1 GB$35
2 GB$45
4 GB$55

According to its website, Raspberry Pi 4 will remain in production until at least January 2026. So, like other Raspberry Pi’s, it seems to be a long-term computer as it’s predecessors.

How to Install Jitsi Meet on Debian 10

How to Install Jitsi Meet on Debian 10

Jitsi Meet is a very usable and simple WebRTC based open-source multi-platform video conferencing solution. It can be even cloud based solution or you can install it on your premises. In this blog post, I will explain how to install Jitsi server on your Debian or Ubuntu based linux platform.

Before starting, if you are curious about the video calling experience, just click this URL and go to my video call page powered by meet.jit.si.

Installing Jitsi Meet is very easy if you want to install it on Ubuntu or Debian linux platform. In this guide you can find how to install Jitsi Meet on Debian 10 by using .deb packages.

I prefer installing Debian from net installer package (netinst), since it is a minimal installation with up-to-date packages. I assume that you can install a Debian linux and I will continue from that point.

First, let’s install base packages like sudo & ssh, so set that up first. Log in from console as root, then install the necessary packets.

apt-get install -y ssh sudo ufw apt-transport-https

Add your non-root user (mine is ferikci) to /etc/sudoers file.

 ferikci  ALL=(ALL:ALL) ALL 

Now you can continue with your user by using sudo commands.

(Optional) Enable UFW firewall and open the needed ports:

ufw allow in ssh
ufw allow in http
ufw allow in https
ufw allow in 10000:20000/udp
ufw enable

I have to warn you that if you are connected to your linux machine via SSH, enter “ufw enable” command after entering “ufw allow in ssh” command, otherwise you may lose your current SSH connection.

Now re-login with your non-root user via SSH for the rest of the setup.

Add the Jitsi GPG key.

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

Add the Jitsi repository and update apt

sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update

Install Jitsi-Meet

Now you’re ready for Jitsi server installation. Use the command below to install jitsi-meet with dependencies:

sudo apt-get -y install jitsi-meet

You will be asked your hostname but do not only write your hostname, you MUST write as FQDN, otherwise you will encounter with problems. By the way, be sure that the FQDN can be addressable with your DNS server (Or you can insert the FQDN to your host file.).

Jitsi Hostname Configuration

After that you will be asked for certificate. In this installation I will use self-signed SSL certificate, so select the first option.

Jitsi SSL Certificate Configuration Menu

The installation will be completed after a while and it will put you to the command prompt. Reboot your linux machine:

sudo reboot

Now it’s time to connect to your video conference GUI. Use https://FQDN to go to the main page of Jitsi server:

https://jitsi.test.local

You will see a greeting page with a room name input field. Just enter a room name and click Go button.

Jitsi Meet Greeting Page

That’s it! You can add more participants with the same procedure or by using URL https://FQDN/roomname

https://jitsi.test.local/testroom
Finally Jitsi Meet is Alive!

Running Jitsi Meet Behind a NAT

If you wish to use your Jitsi server behind a NAT, you must configure your router to forward the following ports to your Jitsi Meet server:

  • 80/TCP
  • 443/TCP
  • 10000-20000/UDP

Next you have to add following lines to /etc/jitsi/videobridge/sip-communicator.properties file:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=[INTERNAL.IP.ADDRESS]
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[PUBLIC.IP.ADDRESS]

For example, here is my configuration:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.1.20
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=95.9.74.32