PerfectStream: A DPDK-based Video Gateway
- 0 Collaborators
PerfectStream is a flexible Video Gateway that receives streams, stores and/or distributes to a large set of end devices. ...learn more
Overview / Usage
PerfectStream is primarily a Video Gateway that receives multiple streams, stores the feed and/or relays the feed as needed in the way the client prefers.
The challenges today are:
- Content distribution devices are expensive and use proprietary technology
- There is no efficient use of network bandwidth.
- Outburst of use of wireless communication.
- There is an outburst of end devices with varying capabilities and needs: Wearables, Smartphones, Tablets, Laptops and SmartTVs
- The demand for video and live streaming is ever-growing.
The key features are:
- Flexible as a receiver: By supporting multiple formats, protocols, etc. it is very flexible as a reciever.
- Flexible as a sender: Also, as a sender, it is very flexible. It offers multiple choices and goes by what the client prefers for coding format, rate, size, security, etc.
- Efficient use of hardware: Tries to maximize hardware use as well as the intrinsic capabilities of hardware.
- Use of right hardware: Although CPU will be primarily used in the early stages, use of GPU/GP-GPU, Intel MIC and other hardware will be used.
The project involves several modules and provides many features. They are briefly described below:
PerfectCode: Stream is received in various video formats and the received video is re-encoded in various formats to suit the end devices.
PerfectRate: Multiple streams will be generated for various bitrates and frame rates.
PerfectSize: The video stream is resized to various sizes to suit various end devices.
PerfectCopy: A single stream is replicated at the right layer as many times as needed for each end device.
PerfectCrypt: The incoming video stream received over a secure session is decrypted as needed, using the capabilities of AES-NI. Similarly, the video stream is encrypted based on the choice of the end device.
PerfectTransport: PerfectStorm supports a variety of transport protocols. For e.g. UDP, TCP, http, https, etc.
PerfectStore: Received video stream can be stored in flash disk.
PerfectCast: The incoming video is relayed to multiple destination after various stages of processing.
PerfectPlay: Any video stream stored can be played at any time.
PerfectChain: PerfectStorm devices can be daisy-chained for wider deployment and content distribution.
Some sample applications on top of Perfect Stream:
PerfectBeep: PerfectStorm can be used to introduce broadcast delay to avoid Wardrobe Malfunction telecast incidents. It can also replace the stream with Censor Beep stream for the period.
PerfectPolice: Content received/sent can be monitored for potential copyright violation
The project is really a starburst of ideas and cannot be done in a short time. So, the following section tells what is possible in the first phase:
Key Benefits
The project offers the following benefits:
- On-demand content delivery like YouTube, Netflix, Apple iTunes, Google Play, Amazon Prime, etc.
- Live broadcast service like Comcast (Cable operators) with TiVo service (Pause live TV, rewind, etc)
- Live streaming service like YouTube, Facebook, etc.
- Interactive video chat such as Apple FaceTime, Google Chat, etc.
Note:
An earlier section covered myriad features and functionalities. However, due to severe time and resource limits, only a subsection will be implemented for the first demo. Here are the details:
PerfectStream
- Over UDP, receives one or more streams
- It reassembles the video frame from UDP payload and decodes the frame
- Trans-rates and transcodes the stream and stores to disk
- Loads and sends the streams over UDP, encrypting (if needed)
- The end device displays the streams
Please note that if there are constraints, shortcuts will be taken as needed.