This page describes how to annotate a video stream from standard live streaming protocols.
The Video Intelligence API Streaming API enables real-time streaming analysis for live media. Supported features include:
Live Label Detection
Live Shot Change Detection
Live Explicit Content Detection
Live Object Detection and Tracking
The AIStreamer ingestion library provides a set of open source interfaces and example code to connect to the Video Intelligence API Streaming API. The library supports:
HTTP Live Streaming (HLS): an HTTP based media streaming and communication protocol.
Real Time Streaming Protocol (RTSP): a network control protocol for streaming media servers. It is used in conjunction with Real Time Protocol (RTP) and Real Time Control Protocol (RTCP).
Real Time Messaging Protocol (RTMP): a protocol for streaming audio, video, and data over the Internet.
To start using AIStreamer
The AIStreamer ingestion library includes the following examples (incuding a Docker example).
Live Streaming: Instructions for supporting live streaming protocols (HLS, RTSP and RTMP) in Video Intelligence API.
Docker & Kubernetes: Instructions for using our docker example and kubernetes deployment.
Live Label Detection: Instructions for streaming label analysis.
Live Shot Change Detection: Instructions for streaming shot change analysis.
Live Explicit Content Detection: Instructions for streaming explicit content analysis.
Live Object Detection and Tracking: Instructions for streaming object detection and tracking analysis.
Code architecture
The AIStreamer ingestion library includes the following three directories:
client: Python & C++ client libraries for connecting to Video Intelligence.
env: Docker example for AIStreamer ingestion.
proto: Proto definitions and gRPC interface for Video Intelligence.
Third-party dependencies
The open source AIStreamer ingestion library is based on the following Google-owned and third-party open source libraries.
Bazel: A build and test tool with multi-language support.
gRPC: A high performance, open-source universal RPC framework.
Protobuf: Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
rules_protobuf: Bazel rules for building protocol buffers and gRPC services.
glog: C++ implementation of the Google logging module.
gflags: C++ library that implements command-line flags processing.
ffmpeg: A complete, cross-platform solution to record, convert and stream audio and video.
gStreamer: Another cross-platform multimedia processing and streaming framework.