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.

6 Strategies of Cutting Cost on Shopping

If your kind of business is mostly done by shopping, then you might want to pick some facts from this article. However, if you shop for fun or for other purposes, this article will help you learn some key tips in terms of cutting cost while you go shopping.

1. Make a Sit at Home List of What you Really Want
Most people do shopping without defining what they really want; they jump into a shopping mall and start buying all most everything their money can buy; the funny thing is that 60% of what they buy are not necessarily needed by them, they just bought them because they feel they have some money on them. If you have this kind of shopping attitude, you can stop it by sitting at home to make a list of what you really want for yourself. When you have a critically compiled list from home, you discipline yourself by sticking to the list when you go shopping.

2. Take a Tour on Pre-Shopping Research
Pre-shopping research will help you know more about the things you have listed and the actual amount you can budget for them. When you do pre-shopping research, you save yourself a lot of cost because you now know how much to go shopping with. However, while deciding on the amount to go shopping with, consider miscellaneous as another necessity.

3. Shop with a Note and a Pen
Before you go shopping, get a pen and a note for taking down of anything which you might find interesting at the shopping mall that is not in your list. People are mostly tempted to buy more things when they go shopping especially the ones that caught their eyes. There is no offence in seeing what is not in your list, but remember you didn’t budget for it at home; all you need do is to write the cost and the name of the product in your note and keep it for your subsequent shopping, that way you can fight impulse spending at that moment and learn to stick to your list

4. Learn to Shop Alone
Cut down on frequent shopping with hang-out friends especially when you have much money on you; the choice they make at the shopping mall will always influence you to buy things you are not ready to buy. If you must shop go shopping with them, make sure it was scheduled to enable you plan from home and know the exact amount to carry with you.

5. Do More of Bulk Buying
Bulk buying to some people means spending much money. When you do bulk buying, you get discount on those products and at the same time save some money. To get started, write down the list of things you use more often at home and include them in your shopping list; goods that you bought in bulk will save you the stress of paying more transport to the shopping mall everyday, it will also allow you time to do some other things and most importantly keep you monetarily relaxed in times of inflation and scarcity of products or goods.

6. Turn down on credit offers
This may sound foolish– turning down on a credit offer to acquire as much as you wish, but remember you have a list which you are working with and this list clearly states the amount you budgeted. When you accept a credit offer, you will be tempted to collect as many things as you want and all of these will amount to spending money which you did not plan to spend. Always try to keep it simple and strict, write down the cost and the name of that product in your note and keep it for another day shopping.

Most of the tips explained above may be difficult to implement, but they are your sure way of cutting cost on shopping, you only need to take some time to master them.

Real Estate Marketing Reports; Fast, Affordable and Content Rich

Generating good real estate web site content is hard, but writing effective content is harder. And forget about publishing good, useful web content quickly on a regular basis, because if you’re anything like me you simply don’t have enough hours in the day to do it.However, the better the quality of your content the more value it adds to your web site. If your human visitors like it the search engines will probably like it, too. And of course this all makes since when you consider that your site visitors are looking for helpful information and search engines are pleased when your visitors are.When you have an online presence it doesn’t matter whether someone is next door to you or on the other side of the world – they can see your web site just the same as anyone else can, at no extra cost to you or to them. You can make friends and contacts in places you’ve never been and will never go. Suddenly, it’s as easy to market globally as it is to market locally.Pre-written Real Estate Marketing Content is readily available and can be used in a variety of ways; as marketing reports, articles, web site content and the like. Above all it offers a way to provide useful information and gain the trust of your readers and site visitors.If you’re a good, fast writer you might consider writing your material yourself. While you might be able to save the cost of a professional writer, you have to ask yourself how much will you really save when you factor in the loss of business while you are painstakingly grinding out one article after another. There’s very little upside to doing a $15.00 an hour job when you could be making thousands.Many real estate web sites appear to have just a few pages. However, they often times have upwards of hundreds of pages that you may never see, but they are hidden, hard working pages feeding the search engines and directing visitors to them. Real estate prospects find these pages by way of different keywords and visit the web sites that appeal to their interests.Perhaps that’s why Marketing Reports are becoming increasingly popular. They’re a fast and affordable way to create content rich, dynamic real estate web site! The more pages you have the more business opportunities you will create, and the faster you can do it the sooner you can benefit from the traffic and leads you can generate using them.Optimized real estate web site content can also help you get your real estate web site indexed by search engines faster, and the more unique the content the greater its’ perceived value. Plus, consumers can get answers to frequently asked questions, as well as determine the types of home available in their price ranges.A well designed web site offers an online presence to advertise your listings and services. It also provides a platform to showcase your knowledge. It’s an efficient way to expose consumers to your marketing message, sign them up as prospects and convert them to viable leads.The real estate market is very competitive and the most successful agents have found ways to differentiate themselves from their competitors. And a real estate web site is just one of the ways to do it. If visitors like your site content they’ll keep returning, as will the search engines.Summarily, the most successful real estate agents usually have lots of leads, buyers and sellers. And one lead generating system that works well is marketing through Real Estate Marketing Reports. They’re easy to find, are relatively inexpensive and often ready to be used as soon as you upload them to your web site.