Categories
Uncategorized

How to Choose a Live Streaming Protocol? RTMP vs HLS vs WebRTC

cover image

When streaming a video, the delivery mostly depends on which live streaming protocol is used. Each protocol performs differently in terms of latency, scalability, and supporting devices. While there’s no universal solution to each live streaming need, you still have freedom to pick the best match for your specific requirements.

How does streaming work?

For the end user, live streaming is all about a quasi-real experience with a screen and a camera standing in-between them and the source. In reality, there’s much more backstage. 

It does start with capturing whatever is about to go live on camera. It does end with playing the content on an end-user device. But to make this happen, it takes four more milestones to complete.

  1. Once having recorded even a byte of information, video and audio get compressed with an encoder. In short, encoder converts raw media material into a piece of digital information that can be displayed on many devices. It also reduces the file size from GBs to MBs to ensure quick data delivery and playback.
  2. Compressed data then gets ingested into a streaming platform for further processing. 
  3. The platform resource transcodes the stream and packages it into its final format and protocol. The latter is basically the way data travels from one communicating system to another. 
  4. To get to its end user, the stream is then delivered across the internet, in most cases via a content delivery network (CDN). In turn, CDN is a system of servers located in different physical locations.

Aaand — cut! Here’s where a user sees the livestream on their device. A long way to go, huh? But in fact, this journey may take less than 0,5 second or 1-2 minutes. This is called latency and it varies from one protocol to another. As well as many other parameters. 

There’re quite a few live streaming protocols to choose from, but we’ll elaborate on three most commonly used ones: RTMP, HLS and WebRTC. In short, here’s the difference: 

protocols comparison
Live Streaming protocols (RTMP, HLS, WebRTC) comparison

Now in detail.

RTMP

Real-Time Messaging Protocol (RTMP) is probably the most widely supported media streaming protocol from both sides of the process. It’s compatible with many professional recording devices and also quite easy to ingest into streaming platforms like YouTube, Twitch, and others. 

Supporting low-latency streaming, RTMP delivers data at roughly the same pace as cable broadcasting — it takes only 5 seconds to transmit information. This is due to using a firehose approach that builds a steady stream of available data and delivers it to numerous users in real time. It just keeps flowing!

Yet, this video streaming protocol is no longer supported by browsers. This results in additional conversion and transcoding the stream into a HTTP-based technology, prolonging the overall latency to 6-30 seconds. 

HLS

HTTP Live Streaming, developed by Apple as a part of QuickTime, Safari, OS X, and iOS software, is a perfect pick if you stream to a large audience, even millions at a time. HLS is supported by all browsers and almost any device (set-top boxes, too). 

The protocol supports adaptive bitrate streaming which provides the best video quality no matter the connection, software, or device. Basically it’s key to the best viewer experience.

Usually, to cover a large audience with broad geography stably and with the lowest latency, CDN is used. 

The only major drawback of HLS seems to be the latency — prioritizing quality, it may reach 45 seconds when used end-to-end. 

Apple presented the solution in 2019: Low Latency HLS shrinks the delay to less than 2 seconds and is currently supported by all browsers, as well as Android, Linux, Microsoft and, obviously, macOS devices, several set-top boxes and Smart TVs. 

WebRTC

RTC in WebRTC stands for “real-time communication” which suggests this protocol is perfect for an interactive video environment. With the minimum latency possible (less than 0,5 second) WebRTC is mostly used for video conferencing with not so many participants (usually 6 or less). We use it a lot in our projects for video conferencing. Check out the ProVideoMeeting or CirrusMED portfolios.

But media servers like Kurento allow WebRTC scaling to an audience of up to 1 million viewers. Yet, a more popular approach would be to use WebRTC as an ingest and repackage it into more scalable HLS. 

Apart from providing the absolute minimum latency possible, WebRTC doesn’t require any additional equipment for a streamer to do the recording. 

Conclusion

Thus, when choosing a live streaming protocol for your streaming goals, ask yourself these questions:

  • What kind of infrastructure am I willing to establish or already have? What recording devices and software are at my disposal?
  • What kind of content I want to deliver and which latency is acceptable? How “live” do I want the streaming to be?
  • What system scalability do I expect? How many users I guesstimate will watch the stream at a time? 

One protocol may not satisfy all your needs. But a good mix of two can. Hit us up to get a custom solution to turn your ideas into action.

Categories
Uncategorized

How We Optimized Analytics Process in Software Development Company

Wireframing is one of the key stages of the analytics process at Fora Soft. Interactive prototype being a rough image of the future product gives the team space to alter functionality at the earliest stage before the development. It also tributes to the client’s confidence that we’re on the same page regarding the product view.

axure wireframe
Axure prototype example

Developing the systems and platforms of various structures, for various audiences and user needs, you still have to design core functionality and basic scenarios all the time. 

Imagine how rich the difference is between the functionality of an e-learning platform, a booking app, and a streaming service. However, most likely all of them will feature a sign-up scenario, editing a user profile and sending messages to the chat.

Having analyzed the wide scope of company projects, Fora Soft analyst team has distinguished the most common user scenarios and created the completed wireframe templates for them, following the usability guidelines and the best practices in web and mobile UX design.

These ready-to-use wireframe templates contribute to the analytics process optimization in Fora Soft. They allow us to dedicate more time and effort to the product’s killer features rather than its basic functionality. The templates are concise and flexible enough to be applied to different kinds of systems.

Among them, you will find a video conference template. Our area of expertise is multimedia software such as systems for online education, sports, teamwork, telemedicine, and video surveillance. 
Check the Fora Soft wireframe library here and try its templates to design your amazing projects.

Download the kit right here:

Categories
Uncategorized

The analytical stage of software development at Fora Soft

At Fora Soft, the first person you will work with on your idea will be an analyst. As bringing your concept for a unique product to reality is typically one of the most difficult challenges for entrepreneurs, the company needs a professional team. First steps require an analyst who can lead you through all the challenges along the way. In this article, we will observe the value that analysts at Fora Soft bring to your project as well as the possible negative scenarios of missing a system analytic.

From Idea to MLP (Minimum Loveable Product)

Product development usually follows a process separated into stages or steps, through which a company conceives:

  •  product concept (idea generation) 
  •  researches (product validation ensures you’re creating a product people will pay for and that you won’t waste time, money, and effort on an idea that people don’t need)
  •  project planning
  •  prototypes
  •  designs
  •  development
  •  tests
  •  launch into the market
Product development process scheme

What if it seems that the idea is already sharpened? Why do I need the analytics process then?

According to Info Tech research, poor requirements are the reasons for 70% of unsuccessful software projects. This may lead to financial losses, wasted time and effort, and disillusionment (we will take a closer look at all the possible circumstances below). You may avoid these stumbling blocks and assure the adoption of best-practice approaches by working closely with an analyst at the outset of a project.

Possible outcomes of skipping the analysis stage

Let me showcase you the list of possible struggles you can face due to skipping the analytical stage of software development:

Time

  • Inability to logically structure a development process
  • Postponement of a current release
  • Incapacity of long-term planning

Money

  • Waste of development hours on functionality redesign
  • Radical change of initial estimation
  • Unrealistic time and costs estimation due to lack of requirements decomposition 

Process

  • Team members may idle and be removed from the project due to lack of tasks at the current time period
  • The team doesn’t include the essential specialist as there were no special requirements gathered for the particular feature in the very beginning
  • Some tasks may require parallel development
  • Constant hole patching instead of building a clear coherent vision

Relationship damage

  • with the customer 
  • within the team

Documentation

  • Customer and team have different product vision
  • Fragmented documentation 

Result

  • Choice of more expensive functionality instead of simple and elegant solutions
  • Architectural limitations
  • Inconsistency or the requirements and logical holes

Preparation stage

So, as we have identified the significance of the analytical stage of software development, let’s dive into the details. 

First of all, we will review the initial requirements, understand your vision and product concept. As the next step, the analyst will provide research on: 

  • Target audience and their pains
  • Competitors
  • Best practises in the industry

That allows us to find unique selling points. A unique selling point describes your company’s distinct market position, getting to the heart of your offering: the value you provide and the problem you address. A good USP clearly articulates a distinct benefit – one that other competitors do not provide – that distinguishes you from the competition.

Requirement analysis

At the next stage of the analysts phase, we will start to design the system from requirement preparation. Requirements analysis is a vital procedure that determines the success of a system or software project. Functional and non-functional requirements are the two sorts of requirements.

Non-functional requirements: These are the quality limitations that the system must meet in accordance with the project contract. The priority or extent to which these aspects are incorporated varies depending on the project. Non-behavioral requirements are another name for them.

Functional Requirements: These are the requirements that the end user directly requests as basic system facilities. These are expressed or described as input to be delivered to the system, operation to be conducted, and expected output. In contrast to non-functional requirements, they are essentially the user-specified criteria that can be seen immediately in the finished product.

Functional requirements are carried out in the form of user stories, which are summaries of needs or queries created from the perspective of a particular product user. All stories will be divided into subsections – epics. The main goal after that is the maximum added value with minimal applied effort. It can be achieved by task prioritization. 

Wireframing

After a couple of iterations and clarifying the requirements, we will do the wireframe. 

Wireframe is a form of interactive prototype that has no user interface, no colors, fonts, or style – just functionality. Consider wireframes to be the skeleton of your product. They give you a good concept of where everything will end up by roughly shaping the final product. In a wireframe stage, it is easier and less expensive to evaluate and alter the structure of the essential pages. Iterating the wireframes to a final version will provide the client and design team confidence that the page/tab is meeting user needs while also achieving the primary business and project goals. Check the example via the link.

On this stage, the analyst reviews UX industry’s best practices as well as searches for a unique selling point. For mobile products, we are referring to Apple Human Interface Guidelines and Google Material Design. Guidelines were developed to expedite the process of resolving user pains. Guidelines for mobile apps specify navigation and interaction concepts, interface components and their styles, typography and iconography used, color palettes, and much more. Furthermore, as everything described in the guidelines is frequently already implemented as an element in the code, the developer does not need to spend time on creating it from scratch.

During these stages, business analysts will be consulting technicians, designers, marketers and other specialists to find the most suitable and elegant solutions.

Testing

Once the wireframe is entirely adhering to the user stories and you are satisfied with the requirements, we are going to the QA stage to ensure quality and consistency of the prototype.

  • Completeness. A set of requirements is regarded as complete if all of its basic pieces are represented and each component is completed with a logical end.
  • Unambiguity. Each component must be clearly and precisely stated, allowing for a distinct interpretation. The request should be legible and comprehensible.
  • Consistency. Requirements should not be in conflict with one another or wireframe.
  • Validity. Requirements should meet the expectations and needs of the final user.
  • Feasibility. The scenarios must be possible to implement.
  • Testability. We should be able to create economically feasible and simple-to-use tests for each need to indicate that the tested product meets the required functionality, performance, and current standards. This implies that each claim must be measured, and testing must be carried out under appropriate conditions.

Testing requirements is a proven way to avoid problems during the development stage. It is at this point that continuous testing begins in order to ensure the requisite quality of the created product and to avoid any business risks. It’s always better to find all hidden dangers on the analytical stage rather than during software development.

Concept design

Optionally, as a part of the analytical process, you may request concept design of the product. Conceptual design is an early stage of the design process in which we establish the broad outlines of something’s purpose and form.  It entails comprehending people’s needs and determining how to address them through products.  These are pictures that will demonstrate the concept’s “mood” and colors in further depth. 

Concept

Update logo, if you don’t have your own

Corporate identity elements: patterns, slides with a slogan that reflects the concept. The options and number of pictures will depend on the concept and product.

UI of the 1st-2nd main screens of the application/platform.

You can check the example via the link.

This is a final stage of the analytical process. After that you will have a full clear vision and be totally ready for the development process. As a next step, you will receive an estimation from our sales manager.

Conclusion

The better the team understands the big picture, the better the final product will be. It is crucial to have solid relationships and a deep level of understanding between the team and customer, and that is what an analyst can fully provide. The price and time estimates you will get from the development team are as precise as the requirements are. After the analytics, it’s possible to give an estimate with +- ~10% deviation. These will help to assure improved cost management, delivery, and meeting business goals. 

So if you feel like talking to our analysts and getting your wireframe, don’t hesitate to hit us up using the contact form.