Scope of application
This SDK is used for field device access, suitable for Linux 64-bit systems, and provides access in the form of so libraries.
Main Feature
This SDK offers low-latency audio and video calls and control/status data transmission for remote real-time control scenarios. The main features are as follows:
Video Processing
Features include video collection, scaling, tailoring, concatenation, etc.
Video codec
Supports hardware encoding types including H264, H265, and AV1 on the Jetson platform, and H264 software encoding on general x86_64 and aarch64 platforms.
Video Transmission
Supports the transmission of encoded video streams such as H264/H265/AV1, with weak network resilience and low-delay transmission capabilities.
Binary Data Transmission
Supports pass-through for binary data, allowing the transmission of binary data to the call participants.
Self-managed streaming
The SDK can self-manage the streaming status and push the stream when there are viewers at the pull stream end, reducing unnecessary network bandwidth usage.
Self-reconnect upon network disconnection
The SDK can self-manage network disconnection status, automatically handling network disconnection exceptions and attempting status recovery.
Concepts
Device ID
Used to identify field devices with uniqueness. If there are devices with the same device ID connected to the network, the device will be kicked off accroding to the "force_login" configuration. If force_login is 1, then the previous device will be kicked off; otherwise the latter device will be kicked off.
Video Stream ID
Used to identify the video stream number of field devices, the number starts from 0 and increments. It is consistent with the array element numbering in the Json configuration's streams_config. When a remote device pulls a video stream, it will specify the video stream to be pulled through the device ID and video stream ID.
Configuration file
the file containing the SDK's initial configuration json strings, defaultly named “config.json”.