You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Introduction

  • The Reference Design Kit (RDK) was designed to facilitate the launch of next-generation video and broadband services. It is an open-source software distribution with pre-integrated components that provide a standard architecture for powering CPE from communications service providers, such as set-top boxes, modem/routers, and other devices.

  • With the evolution of technology, the RDK community has emerged at the forefront of creating universal, differentiated, and customized use cases across industries. The RDK-Camera reference design one such instance, and is easy to use, affordable, and adaptable for developing and constructing cutting-edge smart cameras.

  • RDK-C provides a common set of software components to build IP-based video cameras with standard functions, such as live streaming and continuous recording. RDK accelerates the deployment of next-gen IP camera products and services, while simplifying the customization of the application and user experience.

RDK-C Supported Features

  • Live stream with webRTC and RTSP based protocol
  • 24/7 Continuous video recording
  • Normal Thumbnail
  • Firmware upgrade

RDK-Camera: Architecture

RDK-C Profile

  • RMS (RDK Media Streamer)​
    • RDK Media Stream is an media server capable of delivering your live and on-‐demand content to any screen
    • RMS is not just a multi-‐format, multi-‐protocol server that delivers your media rich content across multiple screens and platforms.
    • Capable of ingesting a single live H.264 video stream from either an MPEG-‐TS, RTMP, or RTP encoder and concurrently  transforming and redistributing the stream to any other endpoint including PCs, Macs, mobile phones, tablets, and televisions.
    • RMS uses WebRTC streaming protocol for end to end streaming
  • Mediastreamer

    • The media streamer does the streaming of captured media content from the camera.
    • HTTP streaming through Mongoose server
    • The gstreamer media framework is used to stream H264 encoded content to mongoose server
    • The output of media streamer shall be provided as input to RDK Mediastreamer (RMS) or for Continuous video recording (CVR) modules
  • CVR(Continuous Video Recording )

    • CVR support using Kinesis Video Streams Producer libraries Kinesis video stream - A set of easy-to-use software and libraries that you can install and configure on your devices
    • These libraries make it easy to securely connect and reliably stream video in different ways, including in real time, after buffering it for a few seconds, or as after-the-fact media uploads
  • Pipewire

    • It have ability to create audio and video server
    • Apps and device are represented by node
    • Each node have the input and output port to share media between node
    • Session manager is to configure nodes, ports and linking nodes
  • KVS SDK​
    • The Amazon Kinesis Video Streams Producer libraries are a set of easy-to-use libraries that are part of the Kinesis Video Streams Producer SDK. The client uses the libraries and SDK to build the on-device application for securely connecting to Kinesis Video Streams and streaming video and other media data that can be viewed in the console or client applications in real time. 
    • Media data can be streamed in the following ways:
    • Streaming media data in real time
    • Streaming media data after buffering it for a few seconds
    • Streaming after-the-fact media uploads
    • After you create a Kinesis Video Streams stream, you can start sending data to the stream. You can use the SDK to create application code that extracts the video data (frames) from the media source and uploads it to Kinesis Video Streams. These applications are also referred to as producer applications.
  • Thumbnail​
    • The RDK-C Thumbnail provides Real time thumbnail and thumbnail on motion events.Types of Thumbnail
      • Next-Gen Thumbnail
      • Smart Thumbnail
  • HttpClients​
    • The RDK-C httpclients component provides APIs for REST Operation.
  • ConfigMgr​
    • The ConfigMgr provides APIs for the devices and user specific management services.
  • Plugins​
    • The RDK-C plugins components provides HAL, APIs to connect with audio and video source streams.

RDK Device Management

  • XCONF​

    • Xconf is slated to be the single entity for managing firmware on set-top boxes both in the field and in various warehouses and test environments.

    • Xconf's primary purpose is to tell set-top boxes (STBs) what version of firmware they should be running. Xconf does not push firmware to the STB, nor is not involved in any way in the actual download / upgrade process. It simply tells the STB which version to use. Xconf also tells STBs when, where (host), and how (protocol) to get the firmware.

    • Xconf consists of two web applications, Xconf DataService and Xconf Admin. Xconf DataService is the app that the STBs talk to. Xconf Admin allows humans to enter all the information necessary for Xconf to provide the correct information to STBs.

    • The interface between STBs and Xconf is simple. STBs make HTTP requests to Xconf sending information like MAC address, environment, and model. Xconf then applies various rules to determine which firmware information to return. The information is returned in JSON format.

 

  • RDK Telemetry​
    • RDK Telemetry mechanism is simple in concept - grepping log files on a device - and has been hugely successful.  
    • The resulting data and reports are a staple for Triage and Debugging.  However, over time, that success has also resulted in a cost.  
    • The number of logs and strings being searched and reported for legacy telemetry can result in larger than desired CPU utilization every time DCM runs , and the resulting upload of data can grow very large.

 

  • RDK Logging
    • RDK Logger provides common logging capability for all RDK components. It is a common logging library which is based on MPEOS logging & uses log4c for formatting and supports multiple log levels.
    • RDK Logger Capabilities 
    • Abstracts logging client from underlying logging utility.
    • Dynamically enables/disables logging level at run time.
    • Provides logging format that complies with the existing OCAP format (e.g. <timestamp> [mod=*, level=*]).
    • Controls log level independently for each component/module.
    • Enables logging globally via single configuration value.Controls initial log level for each component/module from configuration file (debug.ini) at startup.
    • The debug.ini is the main configuration file for RDK Logger and it is intended to be used globally in multi-process environment.
    • Prints formatted data to stdout.
    • Separates logs into separate files based on "SEPARATE.LOGFILE.SUPPORT" configuration variable.
    • RDK logger log files will be generated under "/opt/logs" folder if SEPARATE.LOGFILE.SUPPORT=TRUE
  • WebPA​
    • WebPA is the communication channel from Cloud to RDK based home gateway devices. It helps to manage devices from Cloud. 
    • WebPA protocol provides functionality of read/write access to device management parameters
  • RDK Feature Control​
    • Operational limitations that lead to RFC
    • The only way to disable a new feature in the field was to rollback to the older firmware
    • Lack of options to do a feature deployment in a subset of devices
    • Lack of options to deliver dynamic configurations to the box
    • Using RFC
    • Enables quicker roll out of features
    • Enables a secure channel for delivering runtime configurations to the device
    • Ability to control when the feature needs to be enabled/disabled ? Disable now/ Disable during reboot

        RDK Linux Distribution

    • The RDK-C middleware provides a common interface to Linux distribution that allows portability across hardware platforms.
    • It contains software such as the software development kit(SDK) and SOC level patches and SOC specific changes or optimization and SOC software instructions for OEM integration and tools for basic validation.





  • No labels