You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This library is licensed under the Amazon Software License.
6
6
7
7
## Introduction
8
-
Amazon Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for analytics, machine learning (ML), and other processing.
8
+
Amazon Kinesis Video Streams makes it easy to securely stream video from connected devices to AWS for analytics, machine learning (ML), and other processing.
9
9
10
-
Amazon Kinesis Video Streams Producer SDK for C/C++ makes it easy to build an on-device application that securely connects to a video stream, and reliably publishes video and other media data to Kinesis Video Streams. It takes care of all the underlying tasks required to package the frames and fragments generated by the device's media pipeline. The SDK also handles stream creation, token rotation for secure and uninterrupted streaming, processing acknowledgements returned by Kinesis Video Streams, and other tasks.
10
+
Amazon Kinesis Video Streams Producer SDK for C/C++ makes it easy to build an on-device application that securely connects to a video stream, and reliably publishes video and other media data to Kinesis Video Streams. It takes care of all the underlying tasks required to package the frames and fragments generated by the device's media pipeline. The SDK also handles stream creation, token rotation for secure and uninterrupted streaming, processing acknowledgements returned by Kinesis Video Streams, and other tasks.
11
11
12
12
Amazon Kinesis Video Streams Producer SDK for C/C++ contains the following sub-directories/projects:
13
13
* kinesis-video-pic - The Platform Independent Codebase which is the basic building block for the C++/Java producer SDK. The project includes multiple sub-projects for each sub-component with unit tests.
@@ -19,7 +19,7 @@ Amazon Kinesis Video Streams Producer SDK for C/C++ contains the following sub-d
19
19
## Building from Source
20
20
There are few build-time tools/dependencies which need to be installed in order to build the core SDK libraries and the samples.
21
21
22
-
### Build Dependencies
22
+
### Build Dependencies
23
23
Please install the following additional build tools before proceeding (the example below is for Mac Os X).
24
24
* autoconf 2.69 (License GPLv3+/Autoconf: GNU GPL version 3 or later) http://www.gnu.org/software/autoconf/autoconf.html
25
25
* cmake 3.7/3.8 https://cmake.org/
@@ -30,7 +30,7 @@ Please install the following additional build tools before proceeding (the examp
After you've downloaded the code from GitHub, you can build it on Mac OS or Ubuntu using ./kinesis-video-native-build/install-script script. This will produce the core library, the JNI library, unit tests executable and the sample GStreamer application. The script will download and build the dependent open source components in the 'downloads' directory and link against it.
33
+
After you've downloaded the code from GitHub, you can build it on Mac OS or Ubuntu using ./kinesis-video-native-build/install-script script. This will produce the core library, the JNI library, unit tests executable and the sample GStreamer application. The script will download and build the dependent open source components in the 'downloads' directory and link against it.
34
34
35
35
**Important:** Set the JAVA_HOME environment variable to your version of the JDK `export JAVA_HOME=<your java home directory>` in order to build and link JNI component.
36
36
@@ -52,18 +52,18 @@ The projects depend on the following open source components. Running `install-sc
Kinesis Video Streams Produicer SDK for C++ needs to establish trust with the backend service through TLS. This is done through validating the CAs in the public certificate store. On Linux-based models, this store is located in /etc/ssl/ directory by default.
62
+
Kinesis Video Streams Produicer SDK for C++ needs to establish trust with the backend service through TLS. This is done through validating the CAs in the public certificate store. On Linux-based models, this store is located in /etc/ssl/ directory by default.
to `/etc/ssl/cert.pem`. Append to the end of the file if it exists.
68
68
69
69
Many platforms come with a cert file with a lot of the well-known public certs in them.
@@ -79,7 +79,12 @@ optionally, set `AWS_SESSION_TOKEN` if integrating with temporary token and `AWS
79
79
* The executable will be built in ./kinesis-video-native-build/start. Launch it and it will run the unit test and kick off dummy frame streaming.
80
80
81
81
#### GStreamer demo app
82
-
* The GStreamer demo app will be built in kinesis-video-native-build/kinesis_video_gstreamer_sample_app. Launch it with a stream name and it will start streaming from the camera.
82
+
* The GStreamer demo app will be built in kinesis-video-native-build/kinesis_video_gstreamer_sample_app. Launch it with a stream name and it will start streaming from the camera. The user can also supply a streaming resolution through command line arguments.
83
+
A. If resolution is provided then the sample will try to check if the camera supports that resolution. If it does then streaming starts; else, it will fail
84
+
with an error msg "Resolution not supported"
85
+
86
+
B. If no resolution is specified, the demo will try to use resolutions 1920x1080, 1280x720 and 640x480 in that order (highest resolution first)
87
+
and will start streaming once the camera supported resolution is detected.
83
88
84
89
### Enabling verbose logs
85
90
Define `HEAP_DEBUG` and `LOG_STREAMING` C-defines by uncommenting the appropriate lines in ./kinesis-video-native-build/CMakeList.txt
@@ -172,7 +177,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$vcgencmd get_camera {output is similar to supported=1 detected=1}
225
230
226
-
if the driver does not detect the camera then
231
+
if the driver does not detect the camera then
227
232
228
233
* Check for the camera setup and whether it's connected properly
229
234
* Run firmware update `$ sudo rpi-update` and restart
@@ -235,7 +240,7 @@ $ls /dev/video* {lists the device}
235
240
236
241
* Raspberry PI timestamp/range assertion at runtime. Update the Raspberry PI firmware.
237
242
238
-
$ sudo rpi-update
243
+
$ sudo rpi-update
239
244
240
245
$ sudo reboot
241
246
@@ -246,13 +251,14 @@ $ sudo reboot
246
251
* Raspberry PI seg fauls after some time running on libx264.so. Rebuilding the libx264.so library and re-linking the demo application fixes the issue.
247
252
248
253
249
-
* If an USB webcam is used with a Raspberry PI and the webcam does not support 720p. The following error can occur. Reduce the resolution to 480p at line 336 and 356 should fix the problem. (change the number from 1280 and 720 to 640 and 480)
250
-
251
-
Error received from element source: Internal data stream error.
* Allowed devices to output h.264 streams directly
257
+
* The user can also supply a streaming resolution through command line arguments.
258
+
* If resolution is provided then the sample will try to check if the camera supports that resolution. If it does then streaming starts; else, it will fail with an error msg "Resolution not supported"
259
+
* If no resolution is specified, the demo will try to use resolutions 1920x1080, 1280x720 and 640x480 in that order (highest resolution first)and will start streaming once the camera supported resolution is detected.
260
+
* Known issues:
261
+
* When streaming on raspberry pi. Some green artifacts might be observed on the preview screen. Reducing the resolution can fix the issue.
0 commit comments