Pure C WebRTC Client for Amazon Kinesis Video Streams
Key Features
•
Build• Run• documentation• Related• LicenseKey Features
- Audio / Video Support
- ********************** (VP8) **************************** H (***************************** Opus
- Developer Controlled Media Pipeline
- Raw Media for Input / Output
- ************** API emits feedback for QoS (bitrate suggestions)
- DataChannels
- NACKs STUN / TURN Support
- IPv4 / IPv6 TODO
Signaling Client Included
- ************************ (KVS Provides STUN / TURN and Signaling Backend)
- ********************** – DADDRESS_SANITIZER – Build with AddressSanitizer
- ********************** – DMEMORY_SANITIZER – Build with MemorySanitizer
- ******************************** Build
- ********************** – DTHREAD_SANITIZER – Build with ThreadSanitizer
- ********************** – DUNDEFINED_BEHAVIOR_SANITIZER (Build with UndefinedBehaviorSanitizer`
To build the library and the provided samples run make in the build directory you executed CMake.
make
**************************************Run**********************************
First set the appropriate environment variables so you can connect to KVSexport AWS_ACCESS_KEY_ID=
(**************************************
**************************************Running the SamplesAfter executingmake
You will have the following sample applications in your
build (directory:
- Connect with**************** (Android) ********** / (iOS) ********** / (Web) using pre-made samples********************
- Portable
- Tested on Linux / MacOS
- Tested on x, ARMv5
- Small Install Size
- ********************** (Sub) ********************************************************************************************************** (k library size) OpenSSL, libsrtp, libjsmn, libusrsctp and libwebsockets dependencies.
To download run the following command:
git clone –recursive https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
You will also need to install (pkg-config) and
Configure
Create a build directory in the newly checked out repository, and execute CMake from it.
mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c / build; cd amazon-kinesis-video-streams-webrtc-sdk-c / build; cmake ..
We have provided an example of using GStreamer to capture / encode video, and then send via this library. This is only build if pkg- configfinds GStreamer is installed on your system.
By default we download all the libraries from GitHub and build them locally, so should require nothing to be installed ahead of time. If you do wish to link to existing libraries you can use the following flags to customize your build.
You can pass the following options to (cmake ..) . **********
****************** – If building dependencies, whether or not building openssl from source********************** – DBUILD_TEST=TRUE – Build unit / integration tests, may be useful for confirm support for your device. ./ tst / webrtc_client_test (*************************************************** – DCODE_COVERAGE – Enable coverage reporting
- ********************** – DCOMPILER_WARNINGS – Enable all compiler warnings
and / samples / opusSampleFrames) via WebRTC. It also accepts incoming audio, if enabled in the browser. When checked in the browser, it prints the metadata of the received audio packets in your terminal.
- ********************** kvsWebrtcClientViewer
– This application accepts sample H 617 / Opus frames and prints them out. (**************************************************** kvsWebrtcClientMasterGstSample– This application sends sample H 617 / Opus frames from a GStreamer pipeline. It also will playback incoming audio via an (autoaudiosink) ********************************************************************
Run any of the sample applications by passing to it the name that you want to give to your signaling channel. The application creates the signaling channel using the name you provide. For example, to create a signaling channel called myChannel and to start sending sample H / Opus frames via this channel, run the following command:
./ kvsWebrtcClientMaster myChannel
When the command line application prints connection established, you can proceed to the next step.
Now that your signaling channel is created and the connected master is streaming media to it, you can view this stream. To do so, open the
using the steps in Using the Kinesis Video Streams with WebRTC Test Page and set the following values using the same AWS credentials and the same signaling channel that you specified for the master above:- ************************ (Access key ID) **************************** Secret access key**************** Signaling channel name**************** Client ID (optional) (****************************** Choose Start viewer to start live video streaming of the sample H 548 / Opus frames.**********************************************Documentation
All Public APIs are documented in our (Include.h
refer to (related
for more about WebRTC and KVS. ********)************************************************Related
- What Is Amazon Kinesis Video Streams with WebRTC
************************************ (JS SDK)
- ************************************** (iOS SDK)
- **************************************** (Android SDK)
This library is licensed under the Apache 2.0 License.(********************************************** (**********************************************
**************************************************************
****************************************************** (Read More
GIPHY App Key not set. Please check settings