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.

Posted in videos | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , | Comments Off

What Makes a Great Shopping Cart? 10 Qualities to Look For in an Online Shopping Cart

Let’s face it; most businesses today need to have a presence on the Internet. The problem is, that most small business owners are quite honestly scared of the work it will take to get their business online. I can completely relate to this because as a small business owner, I have been there before. My experience with selling on the Internet actually started back in the early ’90′s. Shopping carts were very clunky and complicated. Domain names cost hundreds of dollars compared to just a few dollars now and SEO wasn’t invented yet.

We have come a long way since those days. Now your choices are too many to count. As a small business owner you basically have a couple of choices to make. First, you can just decide to hire someone to build and manager your website and shopping cart. After all, not all small business owners have the expertise to build an online business. Your second choice is to do it yourself. While this sounds impossible, if you have the right ecommerce system or shopping cart, it really isn’t that hard. With a little help and time, you can easily put your business online. So, if you don’t feel comfortable building your own site, then hire a professional, but if you want to try it for yourself, then I have 10 things to look for in a shopping cart that will make it easier for you to set up and manage. So here we go:

  1. Ease of use. Ok, I know that this sounds obvious, but let’s be honest, if you have to read a War and Peace manual to get your business online, then it isn’t worth it. You aren’t likely to try and set it up your self and you will just end up frustrated. You want a shopping cart program that is easy to use and set up. It should contain easy to follow, step-by-step instructions on getting your site set up.
  2. Web-based control panel. You want to make sure your shopping cart system has an easy to use web-based control panel. It should be secure, but most importantly laid out and easily managed. Your inventory, website design, company information and customer database should all be easily accessed from your control panel.
  3. Integrates easily with a wide array of payment processors. For the newbie, a payment processor is the gateway in which you can accept credit cards or other forms of payments. The one most people recognize easily is PayPal. Your shopping cart system should integrate with a variety of payment carts so it does not limit your ability use a processor that you are comfortable with and one that gives you the best deal.
  4. Real Time Shipping Rates. Your e-commerce system should easily integrate with the most common shipping programs, UPS, FedEx, and UPS at a minimum because these are your most common shippers. Your shopping cart program should allow you to pull real-time shipping rates so you can ensure you are making your money for shipping and your customers are getting the best shipping rates possible. More shipping systems gives your customers more options on how fast they receive their products and the cost.
  5. Safe & secure, reliable web site hosting. You have to rely on your shopping cart host to keep your information safe & secure. You also want to make sure that it stays online 24/7. After all, when your web site is down, you don’t make sales so reliability is a powerful selling point. You should look for a company that has fast servers, hacker deterrent security systems and redundant backups so you never have to worry about your shopping cart and web site being down. Your store should always be ready to accept orders and instill confidence in your customers that their private information is secure.
  6. Easy to use, already built templates & designs. In order to get your shopping cart and web site up and running as fast as possible, you want to have a wide variety of store designs and templates you can chose from. With pre-built templates, you can simply add your store information, products, photos and start selling quicker. If your shopping cart has several designs available, then you will have a better chance of finding a design that matches your business colors and products.
  7. Ability to change the layout and templates without hiring a programmer. Your shopping cart system should allow you to easily make changes to your layout and design without having to hire a programmer. Shopping carts that use WYSIWYG, which stands for “What You See Is What You Get” allow users to type real time information and see how it will look as you enter it. If your shopping cart allows you to move blocks around so you can arrange how your pages look and feel, it gives you even more creative power.
  8. Flexible and easy to update product options. The reason you get a shopping cart program is because you want to sell products online. You want the process for entering products to be as easy as possible. You also want options when entering products. Your shopping cart should have options to show various product views and allow you to put up as many photos as it takes to truly show your products. The ability to zoom in and out also allow customers to get a good look at what they are buying which helps to reduce returns and customer dissatisfaction. Your e-commerce system should also allow you to easily use videos or YouTube to give your customers even more ways to view your products online.
  9. Simple, effective marketing & promotional tools. Your shopping cart system should have several options to allow you to market your business successfully. The ability to add coupons or discount codes is the minimum that you need. You should also have integration with Google AdWords, Google Base product support and the ability to share products on Twitter and Facebook. Your customers should be able to set up their RSS feeds to always get your newest products and changes. RSS stands for “Really Simple Syndication”. You might be familiar using RSS feeds to stay on top of your favorite blogs or news agencies. The best shopping carts will allow you to interface and set up a web store directly on your Facebook page. Your e-commerce system should offer as many options as possible to market your business and get your products in front of potential clients.
  10. Unlimited support and lifetime updates. Finally, your shopping cart system should have unlimited support and updates. There are always going to be times when you just can’t figure something out. If your shopping cart provider has a good FAQ (Frequently Asked Questions) then you will likely be able to get the majority of your questions answered without intervention, however when you have a question that you can’t figure out, you wan the ability to call or email tech support to get a quick solution to your dilemma. You should also expect updates to your software for as long as you are using the system. The Internet is an ever-changing platform that requires shopping cart providers to make constant changes to their software so it aligns with the advancing technology. You want a shopping cart system that does this for you so you don’t have to do anything.

That’s my 10 best requirements for a good shopping cart, e-commerce system. Do you research and be sure to check out what others say about the e-commerce system you are reviewing. I recommend that you look for shopping cart programs that offer a free trial. The longer the trial, the better chance you get for analyzing the program and making sure it is a fit for you. My last bit of advice is that your e-commerce system should be scalable which is to say it should be able to grow with you. If you only have ten products right now, you don’t want to pay for a system which hosts one thousand items if you don’t have to. Get a program that can grow with you.

Posted in shopping | Tagged , , , , , , , , , , , , , , , , , , , , , , , | Comments Off

There is an excessive amount of traffic coming from your Region.

#EANF#

Posted in Employment Work | Tagged | Comments Off