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.

