Video Streaming Protocols

Introduction:

Video surveillance systems currently are undergoing a transition where more and more traditional analog solutions are being replaced by digital solutions. Compared with an analog video surveillance system, a digital video surveillance offers much better flexibility in video content processing or data transmission. At the same time, it, also, have ability to implement advanced features such as motion detection, facial recognition and object tracking. Applying digital systems, makes the security system capable of transmitting video through the Internet, so we need to study the different methods of video streaming over the network. Streaming is the process of playing a file while it is still downloading. Streaming video is a sequence of “moving images” that are sent in compressed form in a way that it can start being proceed before it is completely received like video clips on a Web page.

Here, some of the network protocols used in video streaming are described. The focus is on the features of most important protocols in video surveillance including TCP, UDP and RTSP.

Protocols in streaming technology:

Protocols are the rules implemented for a particular technology, which in streaming technology are used to carry message packets, and communication takes place only through them. Some of the protocols used in streaming technology are described as follows:

SDP:

SDP, standing for Session Description Protocol, used to describe multimedia sessions in a format understood by the participants over a network. The purpose of SDP is to convey information about media streams in multimedia sessions to help participants join or gather information of a particular session. In fact, SDP conveys information such as session name and purpose, times the session is active, codec format, media in the session, Information to receive those media (addresses, ports, formats and so on). A participant checks these information and takes the decision about joining a session.

SDP is aimed primarily for using in large WANs (Wide-Area Network) including the internet. However, SDP can also be utilized in proprietary LANs (Local Area Networks) and MANs (Metropolitan Area Networks).

DHCP:

Dynamic Host Configuration Protocol (DHCP) is a network protocol that enables a server to automatically assign a dynamic IP address to each device that connected to the network. By this assigning, a new device can be added to a network without the bother of manually assigning it a unique IP address. The introduction of DHCP eased the problems associated with manually assigning TCP/IP client addresses, resulting in flexibility and ease-of-use to network administrators.

DHCP is not a secure protocol, since no mechanism is built to allow clients and servers to authenticate each other. Both are vulnerable to deception, as one computer can pretend to be another.

RTP:

Real-Time Transport Protocol (RTP) is an internet protocol standard to manage the real-time transmission of multimedia data over unicast or multicast network services. In other words, RTP defines a standard packet format to deliver real-time audio and video over IP networks. RTP does not guarantee real-time delivery of data, but it provides mechanisms for the sending and receiving applications to support streaming data. It is utilized in conjunction with Real-Time Transport Control Protocol (RTCP) to ensure that monitor data delivery for large multicast networks is provided and Quality of Service (QOS) can be maintained. Monitoring is used to detect any packet loss and to compensate any delay jitter.

RTP is used extensively in communication and applications which involve streaming media such as telephony or video teleconference applications. The recent application of RTP is the introduction of VoIP (Voice over Internet Protocol) systems which are becoming very popular as alternatives to regular telephony circuits.

RTCP:

Real-Time Control Protocol (RTCP) is the control protocol that works in conjunction with RTP to monitor data delivery on large multicast network. Providing feedback on the quality of service being provided by RTP, is the RTCP’s primary function.

RTCP control packets are periodically transmitted by each participant in an RTP session to all other participants. It is important to point out that RTCP carries statistical and control data, while RTP delivers the data. RTCP statistics contain sender or receiver reports such as the number of bytes sent, packets sent, lost packets and round trip delay between endpoints. RTCP provides a way to correlate and synchronize different media streams that have come from the same sender.

RTSP:

The main protocol in streaming is Real Time Streaming Protocol (RTSP), which used to transmit stored or live media data over the IP network. It provides client controls for random access to the stream content. This application layer protocol is used to establish and control either a single or several time-synchronized streams of continuous media such as video and audio. RTSP servers use the Transport RTP in conjunction with RTCP, so that RTP acts as the transport protocol and RTCP will be applied for QOS (Quality of Service) analysis and also synchronization between video and audio streams. Consequently, RTSP can both control and deliver real-time content. The RTP and RTCP are independent of the underlying transport and network layers. In fact, RTSP is considered more than a protocol and provides a simple set of basic commands to control the video stream.

RSTP is based on the bandwidth available between the client and server so that breaks the large data into packet sized data. This, applied to live data feeds as well as stored. So, client software can play one packet, while decompressing the second packet and downloading the third media files. This enables the real-time file to be heard or viewed by the user immediately without downloading the entire media file and also without feeling a break between the data files.

Some features of the Real Time Streaming Protocol are listed as follows:

  • RTSP is capable of presenting media streams from different multimedia servers.
  • Controlling and delivering real time media between a media server and large numbers of media clients are feasible by RTSP.
  • Firewall friendly: Both application and transport layer firewalls can be easily handled by means of protocol.
  • RTSP provides on-demand access of multimedia items such as stored real time audio/video files, live real-time feeds, or stored non real time items.
  • New parameters or methods can be easily added in the protocol, so it enables extension.
  • There is appropriate control on the server. The server cannot stream to clients in any way such that the client cannot stop the streaming.
  • Frame level accuracy makes protocol more suitable for media applications.
  • RTSP allows interoperability between client-server multimedia products from multiple vendors.

HTTP:

Hypertext Transfer Protocol (HTTP), as an application-level protocol, is the set of rules to transfer files (text, graphic images, sound, video, and other multimedia files) on the web, so servers exchange information by using these rules. HTTP uses a server-client model in which the Web browser is client. When a user opens this Web browser, an HTTP command will be sent to the Web server. The browser uses HTTP, which is carried over TCP/IP to communicate to the server and retrieve Web content for the user.

It is worth mentioning that, HTTP is used for distributed, collaborative, hypermedia information system in addition to the context of World Wide Web.

RTMP:

The Real Time Messaging Protocol (RTMP) is used to transfer audio, video, and meta-data across a network. In fact, it is a system to deliver on-demand and live media to Adobe Flash applications which was developed by Adobe Systems. RTMP is a TCP-based protocol which maintains persistent connections and allows low latency communication. Splitting streams into fragments leads to delivering streams smoothly while transmitting much information. RTMP supports video in MP4 and FLV and audio in AAC and MP3.

Some advantages of RTMP include that it can do live streaming, allowing people to watch a video while it is being recorded. Also, it is capable of dynamic streaming, meaning that video quality adjusts automatically to bandwidth changes and seeking to later parts in a video is possible, which is particularly useful for longer videos. Players maintain the tiny buffer rather than downloading a video during playback, thus less bandwidth is used. RTMP streaming is able to skip forward to anywhere in a video at any point in time, so you can skip forward to what you want to see, without any unnecessary waiting. While with HTTP, only what is already in browser cache can be viewed. When RTMP is used as a protocol, host will need to have a dedicated server installed for RTMP.

However, RTMP has several disadvantages: due to streaming data to the player, the bandwidth of the connection must be larger than the data rate of the video, so if the connection drops for a couple of seconds, the stream will stutter. Also, since it uses different protocols and ports with HTTP, it is vulnerable to being blocked by firewalls. The biggest drawback is that RTMP only works in Flash and not in HTML5. Hence, it may be replaced by other streaming protocols with wider support.

TCP:

Transmission Control Protocol (TCP) is a popular transport layer protocol which is connection-oriented and it supplies a reliable byte stream to the top layer, called as the application layer. TCP has a positive acknowledgments mechanism and also provides a mechanism for congestion avoidance to reduce the transmission rate when the network becomes overloaded. TCP guarantees that all packets arrive undamaged in the correct order, reordering out-of-order packets and/or asking a retransmit of lost packets.

To ensure the reliable data delivery over the network, the TCP employs window based transmission mechanism where the sender maintains a buffer, called a sliding window, of sent data to the receiver. A receiver acknowledges received data by sending acknowledgement (ACK) packets. If a sender receives an ACK packet for the data in its window, it removes that data from the window, because it has been successfully transmitted to the receiver. TCP employs this mechanism for controlling of flow, so that a receiver can tell the sender, when it cannot process the data at the arriving rate. This mechanism also informs the sender that how much buffering space is available at the receiver’s end, in order to avoid overfilling of receiver’s buffer window.

TCP is a time-tested transport layer protocol that provides several features like reliability, flow control and congestion control. TCP is also a robust protocol because it can adapt with different network conditions.

The various function of TCP

  • Data transfer- The TCP can transfer a continuous stream of data among the users in the form of segments for transmission through the network.
  • Reliable delivery- The TCP must have the recovering ability from data that may be damaged, missed or may be duplicated over the network. This is done by assigning a sequence number to each segment being transmitted on the network and receiving a positive acknowledgment (ACK) on successful delivery. By using of sequence numbers, the receiver ends arrange segments in correct sequence, that may be received out of order and to avoid duplicate packets. In TCP, Damage is handled by adding a checksum to each segment which is being transferred, finally the checking is done at the receiver, and the damaged segments are then finally discarded.
  • Flow control- TCP provides a mechanism that helps the receiver to control the amount of data sent by the sender.
  • Connections- A Connection is combination of sockets, sequence numbers, and window sizes. Whenever the two processes want to communicate, their TCP’s has to first establish a connection. Once the communication is complete, the connection has to be terminated or closed.

UDP:

User Datagram Protocol (UDP) is a much simpler transport protocol. It is connectionless and provides simple capability to send datagrams between a pair of devices. It is not guaranteed for getting the data from one device to another, does not perform retries, and does not even aware if the target device has received the data successfully. UDP packets are not transmitted directly to the ‘true’ IP address of the receiving device, but are transmitted with a specific device allocated IP multicast address.

The operation of UDP protocol is so simple. When the application layer invokes UDP, the following operations are performed by UDP:

  • Encapsulates the data of users into datagrams.
  • Forwards these datagrams to the IP layer for the transmission.

On the other side, these datagrams are then forwarded to UDP from the IP layer. Then UDP removes the data from the datagram and forwards to the upper application layer. In UDP, a port is a number that specifies the application which is using the UDP service. It can be assumed as an address of the applications.

There are various applications that use UDP as their transport protocol, like Routing information protocol, Simple network management protocol, Dynamic host configuration protocol etc. Traffic of voice and video over the network is generally transmitted by using UDP protocol.

Comparison between some of protocols:

TCP is a connection-oriented protocol that creates end to end communications. When there is a connection between the sender and receiver, the data may be sent over the connection. UDP is a simple and connectionless protocol, therefore it does not set up a dedicated end to end connection between the sender and receiver before the actual communication takes place. The data transmission occurs in one direction from sender to receiver without verifying the state of the receiver.

In comparison to TCP which provides data integrity instead of delivery speed, RTP provides rapid delivery and has mechanisms to compensate any minor loss of data integrity.

It is also worth knowing that RTSP can support multicasting. You can use this protocol to deliver a single feed to many users, without having to provide a separate stream for each of them. While HTTP cannot do this; it is a true one-to-one delivery system.

Video streaming protocols for video surveillance:

IP cameras are the important application of RSTP protocol. RTSP-enabled IP cameras are important components of modern video management systems, by which user can use media player to watch the live video from anywhere. RTP and RTSP are allowed for the direct video feed capture from video surveillance IP-cameras. RTSP provides unprecedented facility of implementation and has been applied by nearly every mainstream IP-camera manufacturer in the market.

Also, today the video industry uses both of TCP and UDP, each with strengths and weaknesses when it comes to live viewing, playback, error correction, and more. In IP video, TCP and UDP may represent very similarity in dedicated surveillance networks.

MJPEG is typically transported via the TCP protocol. TCP guarantees delivery of packets by requiring acknowledgement by the receiver. Packets that are not acknowledged are retransmitted.

UDP is the preferred method for the transfer of live video streams at the Transport layer of the IP network stack. UDP is a faster protocol than TCP and for time sensitive applications (i.e. live video or VoIP), it is better to live with a video glitch caused by a dropped packet than to wait for the retransmission which TCP guarantees. However TCP is definitely more firewall friendly as some networks will block UDP video. UDP is most suitable for networks with very little packet loss and bandwidth that is guaranteed through QOS mechanisms.

MPEG-4 video is typically transmitted over UDP or RTP or RTSP. UDP does not guarantee delivery and provides no facility for retransmission of lost packets. UDP transport provides the option of IP Multicast (IPmc) delivery, where a single stream is generated by the camera may be received by multiple endpoints, the Media Servers.

On the other hand, where more than one client/viewer wants to see a live video stream in a network, multicast video should be used. Multicast video always uses UDP at the Transport layer.

It is worth knowing that, in bandwidth-limited applications such as remote viewing or cameras connected via the internet, TCP and UDP have unique advantages and disadvantages.