amazon-kinesis-video-streams-webrtc-sdk-c | Amazon Kinesis Video Streams | Video Utils library
kandi X-RAY | amazon-kinesis-video-streams-webrtc-sdk-c Summary
kandi X-RAY | amazon-kinesis-video-streams-webrtc-sdk-c Summary
Amazon Kinesis Video Streams Webrtc SDK is for developers to install and customize realtime communication between devices and enable secure streaming of video, audio to Kinesis Video Streams.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of amazon-kinesis-video-streams-webrtc-sdk-c
amazon-kinesis-video-streams-webrtc-sdk-c Key Features
amazon-kinesis-video-streams-webrtc-sdk-c Examples and Code Snippets
Community Discussions
Trending Discussions on amazon-kinesis-video-streams-webrtc-sdk-c
QUESTION
I have a find_library()
statement that matches below (this is based on the amazon kinesis project):
find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX})
The OPEN_SRC_INSTALL_LIB_PREFIX
correctly points to the location where this library is located. I can observe this directly. However, this find_library()
call fails and I am confused as to why it would do so.
I thought that maybe cmake is searching through other paths first and ignoring my specified path, so I also tried it with the NO_DEFAULT_PATH
flag, as that should limit the search to only be in the paths specified:
find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX} NO_DEFAULT_PATH)
... still no luck.
Any ideas why this would not work? I've verified the OPEN_SRC_INSTALL_LIB_PREFIX
is the valid directory of the library via message()
prints.
Note that this is cross compiling, although I don't see why that would change the behavior of find_library()
unless I'm missing something from the documentation
ANSWER
Answered 2021-Apr-22 at 23:12First want to note I'm on cmake
17.5.
Ok, so the documentation is a bit confusing, but it seems that the NO_DEFAULT_PATH
would only use the paths specified by the PATHS
argument and none of the other cache variables, but that doesn't seem to be the case if CMAKE_SYSROOT
is set.
Using the NO_CMAKE_FIND_ROOT_PATH
is what actually causes find_library()
to ignore the cached paths.
QUESTION
I'm trying to cross compile aws webrtc library for arm but I encountered an error while linking C excutable test_srtp. I mixed the instruction of Readme.md and some stackoverflow post for the command. But I am still stuck here for 1 week and I can not find the case on google. How can I fix it?
What command I input
...ANSWER
Answered 2021-Jan-20 at 08:42I just solved it by using mbedtls instead of OpenSSL. Try it with mbedtls if there is someone who have the same issue.
QUESTION
I'm trying to cross compile aws webrtc library(https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c) for arm. So I followed the instruction on Readme.md but I failed.
What I did
...ANSWER
Answered 2021-Jan-07 at 10:25Something is wrong with your ARM toolchain or how the build system uses it. Where did you get it from and how did you install it?
The header sys/capability.h
is included with the ARM toolchain. For example, when I install the Debian package gcc-arm-linux-gnueabihf
then this header file gets copied to /usr/arm-linux-gnueabihf/include/linux/capability.h
. The toolchain is supposed to find it there on its own.
The command arm-linux-gnueabihf-gcc -v
will show you where the toolchain is configured to look for its own header files. E.g. in output below it's --includedir=/usr/arm-linux-gnueabihf/include
that matters, the header should be found relative to this directory. I apologize for the super long line.
QUESTION
I'm attempting to use amazon-kinesis-video-streams-webrtc-sdk-c in a Swift project however I'm unsure of how to create a SignalingClientInfo struct. Specifically I'm unsure of how to properly construct the clientId
:
ANSWER
Answered 2020-Sep-28 at 16:43Kind of annoying, but fixed-sized arrays in C like clientId
are imported into Swift as tuples.
There's on-going discussions on adding proper fixed-size arrays to Swift, but in the mean time, there are implementation-dependent tricks you can use to construct large tuples from arrays.
See https://oleb.net/blog/2017/12/swift-imports-fixed-size-c-arrays-as-tuples/
Edit: it looks like the layout of homogeneous tuples is guaranteed. So this is safe, just annoying.
QUESTION
I am trying to setup a video stream from a robot using WebRTC.
As far as I can tell, the signaling establishes a connection successfully, however no video is being streamed.
I use AWS Kinesis Video as the signaling server, and I use the AWS Kinesis video streams WebRTC sdk for the master node.
For the viewer, I use the Kinesis WebRTC Test Page, with the only change that the viewer does not request any audio.
I believe that the signaling works. At least the viewer is both sending and receiving ICE candidates and there are no errors.
The master node also starts to send data as expected, but the video is never displayed on the viewer.
My question is how can I debug where the problem is?
I have looked at Chrome's webrtc internals, and it generated these graphs. This shows me that packages are being received by chrome, but no frames are being decoded. Is that correct?
On the robot, I am running RoS as the middlelayer, and I am trying to stream the usb webcam.
To do this, I am running the h264_video_encoder node. When the nodes starts up, it tells me that it has these settings:
264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=3 sliced_threads=1 slices=3 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=30 keyint_min=16 scenecut=40 intra_refresh=0 rc=abr mbtree=0 bitrate=2048 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
I suspect the most likely problem is with the encoding, but I don't know how to proceed with debugging this issue.
...ANSWER
Answered 2020-Aug-31 at 12:40The problem that I faced was that the h264 stream I generated was missing the SPS and PPS NALs, so the viewer did not know how to decode the stream.
The underlying problem was that I was converting from KinesisVideoFrame.msg which contained my encoded stream, but I was unaware that the frame_data did not contain the SPS and PPS packets. Those packets are stored in codec_private_data, so I had to prepend codec_private_data to the frame_data to get the final frame data to be send over the stream
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install amazon-kinesis-video-streams-webrtc-sdk-c
To build the library and the provided samples run make in the build directory you executed CMake.
First set the appropriate environment variables so you can connect to KVS. If you want to use IoT certificate instead, check Setup IoT.
Optionally, set AWS_SESSION_TOKEN if integrating with temporary token
Region is optional, if not being set, then us-west-2 will be used as default region.
Set up the desired log level. The log levels and corresponding values currently available are:.
LOG_LEVEL_VERBOSE ---- 1
LOG_LEVEL_DEBUG ---- 2
LOG_LEVEL_INFO ---- 3
LOG_LEVEL_WARN ---- 4
LOG_LEVEL_ERROR ---- 5
LOG_LEVEL_FATAL ---- 6
LOG_LEVEL_SILENT ---- 7
Optionally, set path to SSL CA certificate with variable (../certs/cert.pem is default one and points to file in this repository):
Note: "kinesisvideo:CreateSignalingChannel" can be removed if you are running with existing KVS signaling channels. Viewer sample requires "kinesisvideo:ConnectAsViewer" permission. Integration test requires both "kinesisvideo:ConnectAsViewer" and "kinesisvideo:DeleteSignalingChannel" permission.
To use IoT certificate to authenticate with KVS signaling, please refer to Controlling Access to Kinesis Video Streams Resources Using AWS IoT for provisioning details.
A sample IAM policy for the IoT role looks like below, policy can be modified based on your permission requirement.
With the IoT certificate, IoT credentials provider endpoint (Note: it is not the endpoint on IoT AWS Console!), public key and private key ready, you can replace the static credentials provider createStaticCredentialProvider() and freeStaticCredentialProvider() with IoT credentials provider like below, the credentials provider for samples is in createSampleConfiguration():
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page