Real Time Messaging Protocol

16 September 2013
By Valeriy Komlev, Software Developer

Video streaming is a fast growing area in the IT sphere. Today’s bandwidth and hardware capabilities are no longer a limitation for audio and video content delivery, so finally applications on desktops and even mobile devices are capable of presenting such data, and the RTM-protocol is one of the things which make it much easier.

Theory

The Real time messaging protocol (RTMP) is used to transfer audio, video, and meta-data across a network. It was developed for the purpose of streaming data to a user’s web-browser without using any third-party software except the browser itself and the flash player plugin. Simply speaking, RTMP is a way of packing several types of data (video, audio etc.) into a stream, and sending it through a bidirectional connection. So each client can handle several types of data on one connection even from several connected clients. Not only can it be used to transfer media, but it can also work with meta-data and remote procedure calls to a remote client. A RTMP server could feature VOD (video on demand) functionality or broadcast live streams from live clients connected to a server. Each user could stream data from web-camera and microphone to a server or another user.

There are several drawbacks to the RTMP protocol, such as a lack of security encapsulation features; however, there are several protocols can be derived from basic RTMP:

  • RTMPS that works over secure TSL/SSL connections and features secure transfer of data between clients and there is another secure protocol RTMPE which is encrypted with Adobe’s security algorithm.
  • RTMPT uses HTTP as a transport protocol and works on port 80 which is the default HTTP port. HTTP tunneling could be useful in scenarios when it is not allowed to use non-HTTP traffic on a client’s machine.
  • RTMFP is a p2p variation of the RTMP protocol which is transmitted over the UDP protocol and it is used to transfer data between clients without using server-side communication.

Although RTMP is mostly used in desktop’s web-browsers with flash player plugin, it is possible to use this protocol to stream data directly to/from mobile clients without having the flash plugin installed. There are several third-party libraries for the most popular mobile platforms and it is also possible to use RTMP and its variations in AIR applications for mobile clients.

Practice

In practice, RTMP is mainly used for setting up video chats and video conferences. It is used for live streaming, so people can watch your video while it is being recorded, as well as dynamic streaming, where the video quality automatically adjusts to changes in bandwidth. Along with that, there is a feature for changing the video quality depending on the network capacity.

Within DataArt’s video streaming competence center, we have developed and tested several mobile and web applications that use the RTMP protocol for making video and audio chats between desktop and mobile devices. That means that we performed streaming from a simple web-camera and the signal was sent directly to an iPad (or iPhone), and the other way around – the user launched a streaming app on his mobile device and it was sent to a desktop.

It is also known that YouTube has been using RTMP in the web interface from the very beginning. They are now trying to switch to another protocol for mobile devices, but RTMP is still considered the main one for now.

It is also very reliable in terms of live streaming so it is can be used for different events such as conferences, master classes, and music concerts. It works perfectly well with all browsers and operating systems and even allows developing a special application for mobile platforms.

Conclusion

Video streaming becomes more and more demanded in today’s web and if you are willing to keep up with the modern technologies, don’t rush, consider which way to go carefully. RTMP is a wonderful solution to cover the wide range of devices, as it works perfectly well of the variety of mobile platforms and operating systems and is considered a good for any browser. It is reliable, stable and affordable, as there are already some tested and secure solutions of servers streaming and that makes the development much easier.

Tags: ,


Add Comment

Name Mail Website Comment