awslabs / amazon-kinesis-video-streams-webrtc-sdk-c

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.
https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/group__PublicMemberFunctions.html
Apache License 2.0
1.02k stars 307 forks source link

Raspberry pi zero w webrtc streaming delay #357

Closed kamlesh-solution closed 4 years ago

kamlesh-solution commented 4 years ago

Hello,

I have successfully installed kinesis webrt c sdk on my Raspberry pi zero w when i start streaming its imitate sdk and connect to server for streaming but i m getting up to 40 sec long delay in between streaming.

When i tested on raspberrypi 4 model its delay only 1 -2 sec only.

what is the reason of the long 40 sec delay on raspberry pi zero w ?

is it not enough processing power or anything else because raspberry pi zero w have only 1 core cpu with 521 mb ram but raspberrypi 4 have 4 core cpu processor with 4 gb ram ?

Thanks.

MushMal commented 4 years ago

@kamlesh-solution could you provide a little more information and attach the debug logs with your request?

It's not immediately clear what you are trying to do. Are you using one of the webrtc samples as a Master and the console playback as a viewer or JS sample as a viewer?

Which sample are you using? Are you measuring the time from initiating the connection from the Viewer to the time you actually see the frames on the viewer screen?

In general, the RPi 0 has less power but delay of 40 seconds is certainly not caused by the CPU performance issues.

dannymarosi commented 4 years ago

I see the same issue with my pi zero

pi-zero_pic_delay I see about 18 second delay and frame rate is very slow. Notice the pi zero CPU load is 98%. Any help is appreciated. Thanks, Danny Marosi

MushMal commented 4 years ago

The sample uses x264enc for encoding which is a software-based encoder. This is done so the sample can work on multiple platforms. The x264 encoder is compute expensive so it pegs the CPU causing the latency. This said, I really doubt that this is related to 60 second startup latency described in the original issue.

Here is what my recommendation is.

1) Let's clarify what we are talking about. Are we talking about the startup latency or the run-time latency as noted by @dannymarosi 2) Try to replace the x264enc with omxh264enc which will utilize the hardware accelerated version of the encoder. NOTE: The hardware accelerated encoder might require different params. Tryomxh264enc periodicty-idr=45 inline-header=FALSE

dannymarosi commented 4 years ago

@MushMal both periodicty-idr and inline-header are not element properties for omxh264enc element see : omxh264_element.txt

Please help Thanks, Danny Marosi

MushMal commented 4 years ago

I am quoting https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-gstreamer-plugin.html which has been tested on RPi

omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE

Are you using gst-inspect-1.0 omxh264enc

https://gist.github.com/mitsuhito/ad3ae3e341726687457c

kamlesh-solution commented 4 years ago

@MushMal

here my pi zero debug log , and i m talking about time difference actually see the frames on the viewer screen i m using console playback as a viewer and i m using webrtc master gsteramer sample. I tried to change encoding in media pipline from x264enc to omxh264enc but when i use omxh264enc i could not see any steram on viewer console side.

[KVS GStreamer Master] Using trickleICE by default [KVS GStreamer Master] Created signaling channel b827eb637470 [KVS Gstreamer Master] Finished initializing GStreamer [KVS Gstreamer Master] Streaming video only [KVS GStreamer Master] streaming type video-only[KVS GStreamer Master] KVS WebRTC initialization completed successfully 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 21 2020-04-21 05:43:50 VERBOSE signalingClientStateChanged(): Signaling client state changed to 1 - 'New' 2020-04-21 05:43:50 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000001, Next state: 0x0000000000000002 2020-04-21 05:43:50 VERBOSE signalingClientStateChanged(): Signaling client state changed to 2 - 'Get Security Credentials' 2020-04-21 05:43:50 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000002, Next state: 0x0000000000000004 2020-04-21 05:43:50 VERBOSE signalingClientStateChanged(): Signaling client state changed to 3 - 'Describe Channel' 2020-04-21 05:43:50 VERBOSE lwsCompleteSync(): Perform secure synchronous call for URL: https://kinesisvideo.ap-south-1.amazonaws.com/describeSignalingChannel 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 27 2020-04-21 05:43:50 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 27 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 85 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 29 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 19 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 31 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 71 2020-04-21 05:43:50 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 71 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 24 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Client append handshake header

2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - Authorization: AWS4-HMAC-SHA256 Credential=xxx/20200421/ap-south-1/kinesisvideo/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=f2b625df27e2ad34af458291de8998167d0264231ceffb5b114578a081918006 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-length: 34 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-type: application/json 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - user-agent: AWS-SDK-KVS/3.0.0 GCC/8.3.0 Linux/4.19.97+ armv6l 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - X-Amz-Date: 20200421T054350Z 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 57 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Sending the body { "ChannelName": "b827eb637470" }, size 34 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 2 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 44 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Connected with server response: 200 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 46 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Received client http 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 48 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Received client http read: 314 bytes 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 47 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Http client completed 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 45 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Client http closed 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 30 2020-04-21 05:43:50 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000004, Next state: 0x0000000000000010 2020-04-21 05:43:50 VERBOSE signalingClientStateChanged(): Signaling client state changed to 5 - 'Get Channel Endpoint' 2020-04-21 05:43:50 VERBOSE lwsCompleteSync(): Perform secure synchronous call for URL: https://kinesisvideo.ap-south-1.amazonaws.com/getSignalingChannelEndpoint 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 85 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 29 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 19 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 24 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Client append handshake header

2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - Authorization: AWS4-HMAC-SHA256 Credential=xxx/20200421/ap-south-1/kinesisvideo/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=93ed6021b4c744d1b89756649a01849ec799669651ef609b541f9d5b55d1fe4b 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-length: 203 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-type: application/json 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - user-agent: AWS-SDK-KVS/3.0.0 GCC/8.3.0 Linux/4.19.97+ armv6l 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): Appending header - X-Amz-Date: 20200421T054350Z 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 57 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Sending the body { "ChannelARN": "arn:aws:kinesisvideo:ap-south-1:535693658748:channel/b827eb637470/1586424445926", "SingleMasterChannelEndpointConfiguration": { "Protocols": ["WSS", "HTTPS"], "Role": "MASTER" } }, size 203 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 2 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 44 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Connected with server response: 200 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 46 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Received client http 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 48 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Received client http read: 220 bytes 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 47 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Http client completed 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 45 2020-04-21 05:43:50 DEBUG lwsHttpCallbackRoutine(): Client http closed 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 30 2020-04-21 05:43:50 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000010, Next state: 0x0000000000000020 2020-04-21 05:43:50 VERBOSE signalingClientStateChanged(): Signaling client state changed to 6 - 'Get ICE Server Configuration' 2020-04-21 05:43:50 VERBOSE lwsCompleteSync(): Perform secure synchronous call for URL: https://r-2168f5b4.kinesisvideo.ap-south-1.amazonaws.com/v1/get-ice-server-config 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 85 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 29 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 19 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:50 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 24 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Client append handshake header

2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): Appending header - Authorization: AWS4-HMAC-SHA256 Credential=xxx/20200421/ap-south-1/kinesisvideo/aws4_request, SignedHeaders=host;user-agent;x-amz-date, Signature=248b10dc1f1e62b75ad375dd19b38ba36ad864123936c5a3ad4c1c528bc015db 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-length: 151 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): Appending header - content-type: application/json 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): Appending header - user-agent: AWS-SDK-KVS/3.0.0 GCC/8.3.0 Linux/4.19.97+ armv6l 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): Appending header - X-Amz-Date: 20200421T054350Z 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 57 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Sending the body { "ChannelARN": "arn:aws:kinesisvideo:ap-south-1:535693658748:channel/b827eb637470/1586424445926", "ClientId": "ProducerMaster", "Service": "TURN" }, size 151 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 2 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 44 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Connected with server response: 200 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 46 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Received client http 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 48 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Received client http read: 502 bytes 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 47 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Http client completed 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 45 2020-04-21 05:43:51 DEBUG lwsHttpCallbackRoutine(): Client http closed 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 30 2020-04-21 05:43:51 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000020, Next state: 0x0000000000000040 2020-04-21 05:43:51 VERBOSE signalingClientStateChanged(): Signaling client state changed to 7 - 'Ready' [KVS GStreamer Master] Signaling client created successfully 2020-04-21 05:43:51 INFO signalingClientConnectSync(): Signaling Client Connect Sync 2020-04-21 05:43:51 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000040, Next state: 0x0000000000000080 2020-04-21 05:43:51 VERBOSE signalingClientStateChanged(): Signaling client state changed to 8 - 'Connecting' 2020-04-21 05:43:51 VERBOSE lwsCompleteSync(): Perform secure synchronous call for URL: wss://m-3bffc0cd.kinesisvideo.ap-south-1.amazonaws.com?X-Amz-ChannelARN=arn:aws:kinesisvideo:ap-south-1:535693658748:channel/b827eb637470/1586424445926 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 85 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 29 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 19 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:51 VERBOSE lwsHttpCallbackRoutine(): HTTPS callback with reason 58 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 24 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 2 2020-04-21 05:43:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 3 2020-04-21 05:43:51 DEBUG lwsWssCallbackRoutine(): Connection established 2020-04-21 05:43:51 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000080, Next state: 0x0000000000000100 2020-04-21 05:43:51 VERBOSE signalingClientStateChanged(): Signaling client state changed to 9 - 'Connected' [KVS GStreamer Master] Signaling client connection to socket established File Indication [KVS Gstreamer Master] Beginning streaming...check the stream over channel b827eb637470 2020-04-21 05:43:56 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:01 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:01 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:01 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:01 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:06 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:11 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:11 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:11 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:11 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:16 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:21 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:21 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:21 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:21 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:26 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:31 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:31 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:31 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:31 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:36 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:41 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:41 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:41 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:41 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:46 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:51 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:44:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:44:51 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:44:51 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:44:56 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:01 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:01 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:01 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:01 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:45:06 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:11 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:11 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:11 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:11 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:45:16 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:21 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:21 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:21 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:21 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:45:26 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:31 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:31 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:31 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:31 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:45:36 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:41 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:41 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:41 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:41 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 9 2020-04-21 05:45:45 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 8 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MTE3ODgxMjY1MyAxIHVkcCAyMTEzOTM3MTUxIDYyZDczYzM2LTc1ZjktNGJmZi1iZjkwLWZjMTlmNWU1OGY3My5sb2NhbCA0NDQyMCB0eXAgaG9zdCBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMSIsInNkcE1MaW5lSW5kZXgiOjF9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 10 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG masterMessageReceived(): Creating new streaming session for peer o68kjw9aq7brchdvc8twz 2020-04-21 05:45:45 INFO signalingClientGetIceConfigInfoCount(): Signaling Client Get ICE Config Info Count 2020-04-21 05:45:45 INFO signalingClientGetIceConfigInfo(): Signaling Client Get ICE Config Info 2020-04-21 05:45:45 INFO signalingClientGetIceConfigInfo(): Signaling Client Get ICE Config Info 2020-04-21 05:45:45 DEBUG iceAgentValidateKvsRtcConfig(): iceLocalCandidateGatheringTimeout: 10000 ms iceConnectionCheckTimeout: 0 ms iceCandidateNominationTimeout: 10000 ms iceConnectionCheckPollingInterval: 0 ms 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_NONE to ICE_AGENT_STATE_NEW. 2020-04-21 05:45:45 ERROR iceAgentAddRemoteCandidate(): operation returned status code: 0x5a000004 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJ0eXBlIjoib2ZmZXIiLCJzZHAiOiJ2PTBcclxubz0tIDQxNzk1ODU2Mzk0MTQwMTk4MSAyIElOIElQNCAxMjcuMC4wLjFcclxucz0tXHJcbnQ9MCAwXHJcbmE9Z3JvdXA6QlVORExFIDAgMVxyXG5hPW1zaWQtc2VtYW50aWM6IFdNU1xyXG5tPWF1ZGlvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTExIDEwMyAxMDQgOSAwIDggMTA2IDEwNSAxMyAxMTAgMTEyIDExMyAxMjZcclxuYz1JTiBJUDQgMC4wLjAuMFxyXG5hPXJ0Y3A6OSBJTiBJUDQgMC4wLjAuMFxyXG5hPWljZS11ZnJhZzpQTXBDXHJcbmE9aWNlLXB3ZDpDWCtOQU13dGdxWFMrRWlEckpFRXhURFBcclxuYT1pY2Utb3B0aW9uczp0cmlja2xlXHJcbmE9ZmluZ2VycHJpbnQ6c2hhLTI1NiAyMzpBRDo1MjowRToxRjpGNTowODpENjowQzo1OTo4MzoxNDo2NzoyMDpEMDoxNDpDNTpBMTpCMjo5Mzo4MjoyMjo3RTpFNzoyMjpCRTozQTo5MTpFQTpBNTpGNTo3QlxyXG5hPXNldHVwOmFjdHBhc3NcclxuYT1taWQ6MFxyXG5hPWV4dG1hcDoxIHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNzcmMtYXVkaW8tbGV2ZWxcclxuYT1leHRtYXA6MiBodHRwOi8vd3d3LndlYnJ0Yy5vcmcvZXhwZXJpbWVudHMvcnRwLWhkcmV4dC9hYnMtc2VuZC10aW1lXHJcbmE9ZXh0bWFwOjMgaHR0cDovL3d3dy5pZXRmLm9yZy9pZC9kcmFmdC1ob2xtZXItcm1jYXQtdHJhbnNwb3J0LXdpZGUtY2MtZXh0ZW5zaW9ucy0wMVxyXG5hPWV4dG1hcDo0IHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkXHJcbmE9ZXh0bWFwOjUgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpydHAtc3RyZWFtLWlkXHJcbmE9ZXh0bWFwOjYgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczpyZXBhaXJlZC1ydHAtc3RyZWFtLWlkXHJcbmE9cmVjdm9ubHlcclxuYT1ydGNwLW11eFxyXG5hPXJ0cG1hcDoxMTEgb3B1cy80ODAwMC8yXHJcbmE9cnRjcC1mYjoxMTEgdHJhbnNwb3J0LWNjXHJcbmE9Zm10cDoxMTEgbWlucHRpbWU9MTA7dXNlaW5iYW5kZmVjPTFcclxuYT1ydHBtYXA6MTAzIElTQUMvMTYwMDBcclxuYT1ydHBtYXA6MTA0IElTQUMvMzIwMDBcclxuYT1ydHBtYXA6OSBHNzIyLzgwMDBcclxuYT1ydHBtYXA6MCBQQ01VLzgwMDBcclxuYT1ydHBtYXA6OCBQQ01BLzgwMDBcclxuYT1ydHBtYXA6MTA2IENOLzMyMDAwXHJcbmE9cnRwbWFwOjEwNSBDTi8xNjAwMFxyXG5hPXJ0cG1hcDoxMyBDTi84MDAwXHJcbmE9cnRwbWFwOjExMCB0ZWxlcGhvbmUtZXZlbnQvNDgwMDBcclxuYT1ydHBtYXA6MTEyIHRlbGVwaG9uZS1ldmVudC8zMjAwMFxyXG5hPXJ0cG1hcDoxMTMgdGVsZXBob25lLWV2ZW50LzE2MDAwXHJcbmE9cnRwbWFwOjEyNiB0ZWxlcGhvbmUtZXZlbnQvODAwMFxyXG5tPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYgOTYgOTcgOTggOTkgMTAwIDEwMSAxMDIgMTIyIDEyNyAxMjEgMTI1IDEwNyAxMDggMTA5IDEyNCAxMjAgMTIzXHJcbmM9SU4gSVA0IDAuMC4wLjBcclxuYT1ydGNwOjkgSU4gSVA0IDAuMC4wLjBcclxuYT1pY2UtdWZyYWc6UE1wQ1xyXG5hPWljZS1wd2Q6Q1grTkFNd3RncVhTK0VpRHJKRUV4VERQXHJcbmE9aWNlLW9wdGlvbnM6dHJpY2tsZVxyXG5hPWZpbmdlcnByaW50OnNoYS0yNTYgMjM6QUQ6NTI6MEU6MUY6RjU6MDg6RDY6MEM6NTk6ODM6MTQ6Njc6MjA6RDA6MTQ6QzU6QTE6QjI6OTM6ODI6MjI6N0U6RTc6MjI6QkU6M0E6OTE6RUE6QTU6RjU6N0JcclxuYT1zZXR1cDphY3RwYXNzXHJcbmE9bWlkOjFcclxuYT1leHRtYXA6MTQgdXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6dG9mZnNldFxyXG5hPWV4dG1hcDoyIGh0dHA6Ly93d3cud2VicnRjLm9yZy9leHBlcmltZW50cy9ydHAtaGRyZXh0L2Ficy1zZW5kLXRpbWVcclxuYT1leHRtYXA6MTMgdXJuOjNncHA6dmlkZW8tb3JpZW50YXRpb25cclxuYT1leHRtYXA6MyBodHRwOi8vd3d3LmlldGYub3JnL2lkL2RyYWZ0LWhvbG1lci1ybWNhdC10cmFuc3BvcnQtd2lkZS1jYy1leHRlbnNpb25zLTAxXHJcbmE9ZXh0bWFwOjEyIGh0dHA6Ly93d3cud2VicnRjLm9yZy9leHBlcmltZW50cy9ydHAtaGRyZXh0L3BsYXlvdXQtZGVsYXlcclxuYT1leHRtYXA6MTEgaHR0cDovL3d3dy53ZWJydGMub3JnL2V4cGVyaW1lbnRzL3J0cC1oZHJleHQvdmlkZW8tY29udGVudC10eXBlXHJcbmE9ZXh0bWFwOjcgaHR0cDovL3d3dy53ZWJydGMub3JnL2V4cGVyaW1lbnRzL3J0cC1oZHJleHQvdmlkZW8tdGltaW5nXHJcbmE9ZXh0bWFwOjggaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1hdnRleHQtZnJhbWVtYXJraW5nLTA3XHJcbmE9ZXh0bWFwOjkgaHR0cDovL3d3dy53ZWJydGMub3JnL2V4cGVyaW1lbnRzL3J0cC1oZHJleHQvY29sb3Itc3BhY2VcclxuYT1leHRtYXA6NCB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZFxyXG5hPWV4dG1hcDo1IHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cnRwLXN0cmVhbS1pZFxyXG5hPWV4dG1hcDo2IHVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6cmVwYWlyZWQtcnRwLXN0cmVhbS1pZFxyXG5hPXJlY3Zvbmx5XHJcbmE9cnRjcC1tdXhcclxuYT1ydGNwLXJzaXplXHJcbmE9cnRwbWFwOjk2IFZQOC85MDAwMFxyXG5hPXJ0Y3AtZmI6OTYgZ29vZy1yZW1iXHJcbmE9cnRjcC1mYjo5NiB0cmFuc3BvcnQtY2NcclxuYT1ydGNwLWZiOjk2IGNjbSBmaXJcclxuYT1ydGNwLWZiOjk2IG5hY2tcclxuYT1ydGNwLWZiOjk2IG5hY2sgcGxpXHJcbmE9cnRwbWFwOjk3IHJ0eC85MDAwMFxyXG5hPWZtdHA6OTcgYXB0PTk2XHJcbmE9cnRwbWFwOjk4IFZQOS85MDAwMFxyXG5hPXJ0Y3AtZmI6OTggZ29vZy1yZW1iXHJcbmE9cnRjcC1mYjo5OCB0cmFuc3BvcnQtY2NcclxuYT1ydGNwLWZiOjk4IGNjbSBmaXJcclxuYT1ydGNwLWZiOjk4IG5hY2tcclxuYT1ydGNwLWZiOjk4IG5hY2sgcGxpXHJcbmE9Zm10cDo5OCBwcm9maWxlLWlkPTBcclxuYT1ydHBtYXA6OTkgcnR4LzkwMDAwXHJcbmE9Zm10cDo5OSBhcHQ9OThcclxuYT1ydHBtYXA6MTAwIFZQOS85MDAwMFxyXG5hPXJ0Y3AtZmI6MTAwIGdvb2ctcmVtY 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive lxyXG5hPXJ0Y3AtZmI6MTAwIHRyYW5zcG9ydC1jY1xyXG5hPXJ0Y3AtZmI6MTAwIGNjbSBmaXJcclxuYT1ydGNwLWZiOjEwMCBuYWNrXHJcbmE9cnRjcC1mYjoxMDAgbmFjayBwbGlcclxuYT1mbXRwOjEwMCBwcm9maWxlLWlkPTJcclxuYT1ydHBtYXA6MTAxIHJ0eC85MDAwMFxyXG5hPWZtdHA6MTAxIGFwdD0xMDBcclxuYT1ydHBtYXA6MTAyIEgyNjQvOTAwMDBcclxuYT1ydGNwLWZiOjEwMiBnb29nLXJlbWJcclxuYT1ydGNwLWZiOjEwMiB0cmFuc3BvcnQtY2NcclxuYT1ydGNwLWZiOjEwMiBjY20gZmlyXHJcbmE9cnRjcC1mYjoxMDIgbmFja1xyXG5hPXJ0Y3AtZmI6MTAyIG5hY2sgcGxpXHJcbmE9Zm10cDoxMDIgbGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQ9MTtwYWNrZXRpemF0aW9uLW1vZGU9MTtwcm9maWxlLWxldmVsLWlkPTQyMDAxZlxyXG5hPXJ0cG1hcDoxMjIgcnR4LzkwMDAwXHJcbmE9Zm10cDoxMjIgYXB0PTEwMlxyXG5hPXJ0cG1hcDoxMjcgSDI2NC85MDAwMFxyXG5hPXJ0Y3AtZmI6MTI3IGdvb2ctcmVtYlxyXG5hPXJ0Y3AtZmI6MTI3IHRyYW5zcG9ydC1jY1xyXG5hPXJ0Y3AtZmI6MTI3IGNjbSBmaXJcclxuYT1ydGNwLWZiOjEyNyBuYWNrXHJcbmE9cnRjcC1mYjoxMjcgbmFjayBwbGlcclxuYT1mbXRwOjEyNyBsZXZlbC1hc3ltbWV0cnktYWxsb3dlZD0xO3BhY2tldGl6YXRpb24tbW9kZT0wO3Byb2ZpbGUtbGV2ZWwtaWQ9NDIwMDFmXHJcbmE9cnRwbWFwOjEyMSBydHgvOTAwMDBcclxuYT1mbXRwOjEyMSBhcHQ9MTI3XHJcbmE9cnRwbWFwOjEyNSBIMjY0LzkwMDAwXHJcbmE9cnRjcC1mYjoxMjUgZ29vZy1yZW1iXHJcbmE9cnRjcC1mYjoxMjUgdHJhbnNwb3J0LWNjXHJcbmE9cnRjcC1mYjoxMjUgY2NtIGZpclxyXG5hPXJ0Y3AtZmI6MTI1IG5hY2tcclxuYT1ydGNwLWZiOjEyNSBuYWNrIHBsaVxyXG5hPWZtdHA6MTI1IGxldmVsLWFzeW1tZXRyeS1hbGxvd2VkPTE7cGFja2V0aXphdGlvbi1tb2RlPTE7cHJvZmlsZS1sZXZlbC1pZD00MmUwMWZcclxuYT1ydHBtYXA6MTA3IHJ0eC85MDAwMFxyXG5hPWZtdHA6MTA3IGFwdD0xMjVcclxuYT1ydHBtYXA6MTA4IEgyNjQvOTAwMDBcclxuYT1ydGNwLWZiOjEwOCBnb29nLXJlbWJcclxuYT1ydGNwLWZiOjEwOCB0cmFuc3BvcnQtY2NcclxuYT1ydGNwLWZiOjEwOCBjY20gZmlyXHJcbmE9cnRjcC1mYjoxMDggbmFja1xyXG5hPXJ0Y3AtZmI6MTA4IG5hY2sgcGxpXHJcbmE9Zm10cDoxMDggbGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQ9MTtwYWNrZXRpemF0aW9uLW1vZGU9MDtwcm9maWxlLWxldmVsLWlkPTQyZTAxZlxyXG5hPXJ0cG1hcDoxMDkgcnR4LzkwMDAwXHJcbmE9Zm10cDoxMDkgYXB0PTEwOFxyXG5hPXJ0cG1hcDoxMjQgcmVkLzkwMDAwXHJcbmE9cnRwbWFwOjEyMCBydHgvOTAwMDBcclxuYT1mbXRwOjEyMCBhcHQ9MTI0XHJcbmE9cnRwbWFwOjEyMyB1bHBmZWMvOTAwMDBcclxuIn0=","messageType":"SDP_OFFER","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MTE3ODgxMjY1MyAxIHVkcCAyMTEzOTM3MTUxIDYyZDczYzM2LTc1ZjktNGJmZi1iZjkwLWZjMTlmNWU1OGY3My5sb2NhbCA0MzgzOSB0eXAgaG9zdCBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMCIsInNkcE1MaW5lSW5kZXgiOjB9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MTM5MTAyMTA4MCAxIHVkcCAzMzU2MjYyMyAxMy4xMjYuMjI5LjEwOCA2MTU3MSB0eXAgcmVsYXkgcmFkZHIgMTAzLjg1LjEwLjE4MCBycG9ydCAxMjU4NyBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMCIsInNkcE1MaW5lSW5kZXgiOjB9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MTM5MTAyMTA4MCAxIHVkcCAzMzU2MjYyMyAxMy4xMjYuMjI5LjEwOCA1MzI1MCB0eXAgcmVsYXkgcmFkZHIgMTAzLjg1LjEwLjE4MCBycG9ydCAxMjI3MiBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMSIsInNkcE1MaW5lSW5kZXgiOjF9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 ERROR iceAgentAddRemoteCandidate(): operation returned status code: 0x5a000004 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MjI5MzMyMjEyNyAxIHVkcCAzMzU2MjM2NyAxMy4yMzUuMTA0LjE3OSA2MTY1NiB0eXAgcmVsYXkgcmFkZHIgMTAzLjg1LjEwLjE4MCBycG9ydCAxMjU4NyBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMCIsInNkcE1MaW5lSW5kZXgiOjB9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive {"messagePayload":"eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MjI5MzMyMjEyNyAxIHVkcCAzMzU2MjM2NyAxMy4yMzUuMTA0LjE3OSA2NDMyNyB0eXAgcmVsYXkgcmFkZHIgMTAzLjg1LjEwLjE4MCBycG9ydCAxMjI3MiBnZW5lcmF0aW9uIDAgdWZyYWcgUE1wQyBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMSIsInNkcE1MaW5lSW5kZXgiOjF9","messageType":"ICE_CANDIDATE","senderClientId":"o68kjw9aq7brchdvc8twz"} 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 INFO signalingClientSendMessageSync(): Signaling Client Sending Message Sync 2020-04-21 05:45:45 DEBUG writeLwsData(): Sending data over web socket: { "action": "SDP_ANSWER", "RecipientClientId": "o68kjw9aq7brchdvc8twz", "MessagePayload": "eyJ0eXBlIjogImFuc3dlciIsICJzZHAiOiAidj0wXHJcbm89LSAxNzQ1ODUyMTEzIDIgSU4gSVA0IDEyNy4wLjAuMVxyXG5zPS1cclxudD0wIDBcclxuYT1ncm91cDpCVU5ETEUgMCAxXHJcbmE9bXNpZC1zZW1hbnRpYzogV01TIG15S3ZzVmlkZW9TdHJlYW1cclxubT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDExMVxyXG5jPUlOIElQNCAxMjcuMC4wLjFcclxuYT1tc2lkOm15S3ZzVmlkZW9TdHJlYW0gbXlBdWRpb1RyYWNrXHJcbmE9c3NyYzoxNjQxMDA1NTYyIGNuYW1lOkN4bWJyaXpUTUFGb3FKUThcclxuYT1zc3JjOjE2NDEwMDU1NjIgbXNpZDpteUt2c1ZpZGVvU3RyZWFtIG15QXVkaW9UcmFja1xyXG5hPXNzcmM6MTY0MTAwNTU2MiBtc2xhYmVsOm15S3ZzVmlkZW9TdHJlYW1cclxuYT1zc3JjOjE2NDEwMDU1NjIgbGFiZWw6bXlBdWRpb1RyYWNrXHJcbmE9cnRjcDo5IElOIElQNCAwLjAuMC4wXHJcbmE9aWNlLXVmcmFnOmNyOUVcclxuYT1pY2UtcHdkOlVYbGJkRSswY1RFT004T0IyWUg2K2Rhc1xyXG5hPWZpbmdlcnByaW50OnNoYS0yNTYgQ0Y6MzU6MEY6QkY6MDc6Q0Y6ODQ6RDY6NjQ6M0Q6NTc6NkM6OEI6M0E6Qzc6Nzg6ODY6Q0U6RjI6MTM6OTg6NzM6RDA6RDg6REY6NDY6RDU6MDU6NUE6N0I6NDA6NTlcclxuYT1zZXR1cDphY3RpdmVcclxuYT1taWQ6MFxyXG5hPXNlbmRyZWN2XHJcbmE9cnRjcC1tdXhcclxuYT1ydGNwLXJzaXplXHJcbmE9cnRwbWFwOjExMSBvcHVzLzQ4MDAwLzJcclxuYT1mbXRwOjExMSBtaW5wdGltZT0xMDt1c2VpbmJhbmRmZWM9MVxyXG5hPXJ0Y3AtZmI6MTExIG5hY2tcclxubT12aWRlbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDEwOCAxMDlcclxuYz1JTiBJUDQgMTI3LjAuMC4xXHJcbmE9bXNpZDpteUt2c1ZpZGVvU3RyZWFtIG15VmlkZW9UcmFja1JUWFxyXG5hPXNzcmMtZ3JvdXA6RklEIDk0OTQ2Nzk3MiA3NTYwNzY5OTRcclxuYT1zc3JjOjk0OTQ2Nzk3MiBjbmFtZTpDeG1icml6VE1BRm9xSlE4XHJcbmE9c3NyYzo5NDk0Njc5NzIgbXNpZDpteUt2c1ZpZGVvU3RyZWFtIG15VmlkZW9UcmFja1xyXG5hPXNzcmM6OTQ5NDY3OTcyIG1zbGFiZWw6bXlLdnNWaWRlb1N0cmVhbVxyXG5hPXNzcmM6OTQ5NDY3OTcyIGxhYmVsOm15VmlkZW9UcmFja1xyXG5hPXNzcmM6NzU2MDc2OTk0IGNuYW1lOkN4bWJyaXpUTUFGb3FKUThcclxuYT1zc3JjOjc1NjA3Njk5NCBtc2lkOm15S3ZzVmlkZW9TdHJlYW0gbXlWaWRlb1RyYWNrUlRYXHJcbmE9c3NyYzo3NTYwNzY5OTQgbXNsYWJlbDpteUt2c1ZpZGVvU3RyZWFtUlRYXHJcbmE9c3NyYzo3NTYwNzY5OTQgbGFiZWw6bXlWaWRlb1RyYWNrUlRYXHJcbmE9cnRjcDo5IElOIElQNCAwLjAuMC4wXHJcbmE9aWNlLXVmcmFnOmNyOUVcclxuYT1pY2UtcHdkOlVYbGJkRSswY1RFT004T0IyWUg2K2Rhc1xyXG5hPWZpbmdlcnByaW50OnNoYS0yNTYgQ0Y6MzU6MEY6QkY6MDc6Q0Y6ODQ6RDY6NjQ6M0Q6NTc6NkM6OEI6M0E6Qzc6Nzg6ODY6Q0U6RjI6MTM6OTg6NzM6RDA6RDg6REY6NDY6RDU6MDU6NUE6N0I6NDA6NTlcclxuYT1zZXR1cDphY3RpdmVcclxuYT1taWQ6MVxyXG5hPXNlbmRyZWN2XHJcbmE9cnRjcC1tdXhcclxuYT1ydGNwLXJzaXplXHJcbmE9cnRwbWFwOjEwOCBIMjY0LzkwMDAwXHJcbmE9Zm10cDoxMDggbGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQ9MTtwYWNrZXRpemF0aW9uLW1vZGU9MDtwcm9maWxlLWxldmVsLWlkPTQyZTAxZlxyXG5hPXJ0cG1hcDoxMDkgcnR4LzkwMDAwXHJcbmE9Zm10cDoxMDkgYXB0PTEwOFxyXG5hPXJ0Y3AtZmI6MTA4IG5hY2tcclxuIn0=" } 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000001, Next state: 0x0000000000000002 2020-04-21 05:45:45 INFO signalingClientSendMessageSync(): Signaling Client Sending Message Sync 2020-04-21 05:45:45 DEBUG writeLwsData(): Sending data over web socket: { "action": "ICE_CANDIDATE", "RecipientClientId": "o68kjw9aq7brchdvc8twz", "MessagePayload": "eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MCAxIHVkcCA2NTg4ODEgMTkyLjE2OC4xLjEwNiAzODE3OSB0eXAgaG9zdCByYWRkciAwLjAuMC4wIHJwb3J0IDAgZ2VuZXJhdGlvbiAwIG5ldHdvcmstY29zdCA5OTkiLCJzZHBNaWQiOiIwIiwic2RwTUxpbmVJbmRleCI6MH0=" } 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_NEW to TURN_STATE_CHECK_SOCKET_CONNECTION 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_NEW to ICE_AGENT_STATE_GATHERING. 2020-04-21 05:45:45 INFO onConnectionStateChange(): New connection state 1 2020-04-21 05:45:45 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_CHECK_SOCKET_CONNECTION to TURN_STATE_GET_CREDENTIALS 2020-04-21 05:45:45 DEBUG fromGatheringIceAgentState(): checking local candidate type srflx, ip 192.168.1.106 2020-04-21 05:45:45 DEBUG updateCandidateAddress(): New server reflexive candidate found 2020-04-21 05:45:45 INFO signalingClientSendMessageSync(): Signaling Client Sending Message Sync 2020-04-21 05:45:45 DEBUG writeLwsData(): Sending data over web socket: { "action": "ICE_CANDIDATE", "RecipientClientId": "o68kjw9aq7brchdvc8twz", "MessagePayload": "eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MSAxIHVkcCA2NTgyMDUgMTAzLjg1LjguNjEgMTgyOTcgdHlwIHNyZmx4IHJhZGRyIDAuMC4wLjAgcnBvcnQgMCBnZW5lcmF0aW9uIDAgbmV0d29yay1jb3N0IDk5OSIsInNkcE1pZCI6IjAiLCJzZHBNTGluZUluZGV4IjowfQ==" } 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 INFO signalingClientSendMessageSync(): Signaling Client Sending Message Sync 2020-04-21 05:45:45 DEBUG writeLwsData(): Sending data over web socket: { "action": "ICE_CANDIDATE", "RecipientClientId": "o68kjw9aq7brchdvc8twz", "MessagePayload": "eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MSAxIHVkcCA2NTgyMDUgMTAzLjg1LjguNjEgMTgyOTcgdHlwIHNyZmx4IHJhZGRyIDAuMC4wLjAgcnBvcnQgMCBnZW5lcmF0aW9uIDAgbmV0d29yay1jb3N0IDk5OSIsInNkcE1pZCI6IjAiLCJzZHBNTGluZUluZGV4IjowfQ==" } 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive 2020-04-21 05:45:45 WARN receiveLwsMessage(): Signaling received an empty message 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG onIceCandidateHandler(): ice candidate gathering finished 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000002, Next state: 0x0000000000000004 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_GATHERING to ICE_AGENT_STATE_WAITING_REMOTE_CREDENTIAL. 2020-04-21 05:45:45 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive 2020-04-21 05:45:45 WARN receiveLwsMessage(): Signaling received an empty message 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 WARN socketConnectionSendData(): SSL_write failed with error:00000002:lib(0):func(0):system lib 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000004, Next state: 0x0000000000000008 2020-04-21 05:45:45 DEBUG iceAgentCheckConnectionStateSetup(): ice candidate pair count 8 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_WAITING_REMOTE_CREDENTIAL to ICE_AGENT_STATE_CHECK_CONNECTION. 2020-04-21 05:45:45 INFO onConnectionStateChange(): New connection state 2 2020-04-21 05:45:45 DEBUG handleStunPacket(): received candidate with USE_CANDIDATE flag, local candidate type srflx. 2020-04-21 05:45:45 WARN socketConnectionSendData(): SSL_write failed with error:00000002:lib(0):func(0):system lib 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000008, Next state: 0x0000000000000010 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_CHECK_CONNECTION to ICE_AGENT_STATE_CONNECTED. 2020-04-21 05:45:45 INFO onConnectionStateChange(): New connection state 3 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive 2020-04-21 05:45:45 WARN receiveLwsMessage(): Signaling received an empty message 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client receive 2020-04-21 05:45:45 WARN receiveLwsMessage(): Signaling received an empty message 2020-04-21 05:45:45 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000010, Next state: 0x0000000000000020 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_CONNECTED to ICE_AGENT_STATE_NOMINATING. 2020-04-21 05:45:45 WARN socketConnectionSendData(): SSL_write failed with error:00000002:lib(0):func(0):system lib 2020-04-21 05:45:45 DEBUG stepStateMachine(): State Machine - Current state: 0x0000000000000020, Next state: 0x0000000000000040 2020-04-21 05:45:45 DEBUG iceAgentReadyStateSetup(): Selected pair ip address: 103.85.8.61, port 18297, local candidate type: srflx 2020-04-21 05:45:45 DEBUG iceAgentReadyStateSetup(): Relayed candidate is not selected. Turn allocation will be freed 2020-04-21 05:45:45 DEBUG stepIceAgentStateMachine(): Ice agent state changed from ICE_AGENT_STATE_NOMINATING to ICE_AGENT_STATE_READY. 2020-04-21 05:45:45 WARN socketConnectionSendData(): SSL_write failed with error:00000002:lib(0):func(0):system lib 2020-04-21 05:45:46 WARN turnConnectionHandleStunError(): Received STUN error response. Error type: 0x00, Error Code: 401. Error detail: Unauthorized. 2020-04-21 05:45:46 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_GET_CREDENTIALS to TURN_STATE_ALLOCATION 2020-04-21 05:45:46 WARN turnConnectionHandleStunError(): Received STUN error response. Error type: 0x00, Error Code: 401. Error detail: Unauthorized. 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): Allocation life time is 600 seconds 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): TURN Allocation succeeded. Allocation expiration epoch 158744854632809 2020-04-21 05:45:46 INFO signalingClientSendMessageSync(): Signaling Client Sending Message Sync 2020-04-21 05:45:46 DEBUG writeLwsData(): Sending data over web socket: { "action": "ICE_CANDIDATE", "RecipientClientId": "o68kjw9aq7brchdvc8twz", "MessagePayload": "eyJjYW5kaWRhdGUiOiJjYW5kaWRhdGU6MiAxIHVkcCA2NTU2MDUgMTMuMjMzLjIwMS45NSA1ODUyMSB0eXAgcmVsYXkgcmFkZHIgMC4wLjAuMCBycG9ydCAwIGdlbmVyYXRpb24gMCBuZXR3b3JrLWNvc3QgOTk5Iiwic2RwTWlkIjoiMCIsInNkcE1MaW5lSW5kZXgiOjB9" } 2020-04-21 05:45:46 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:46 DEBUG turnConnectionStepState(): Relay address received: 13.233.201.95, port: 58521 2020-04-21 05:45:46 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_ALLOCATION to TURN_STATE_CREATE_PERMISSION 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): Allocation life time is 600 seconds 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): TURN Allocation succeeded. Allocation expiration epoch 158744854641932 2020-04-21 05:45:46 DEBUG lwsWssCallbackRoutine(): Client receive 2020-04-21 05:45:46 WARN receiveLwsMessage(): Signaling received an empty message 2020-04-21 05:45:46 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): create permission succeeded for peer 13.235.104.179 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): create permission succeeded for peer 13.235.104.179 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): create permission succeeded for peer 13.126.229.108 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): create permission succeeded for peer 13.126.229.108 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): Channel bind succeeded with peer 13.235.104.179, port: 64327, channel number 16385 2020-04-21 05:45:46 DEBUG turnConnectionHandleStun(): Channel bind succeeded with peer 13.235.104.179, port: 61656, channel number 16386 2020-04-21 05:45:47 DEBUG turnConnectionHandleStun(): Channel bind succeeded with peer 13.126.229.108, port: 53250, channel number 16387 2020-04-21 05:45:47 DEBUG turnConnectionHandleStun(): Channel bind succeeded with peer 13.126.229.108, port: 61571, channel number 16388 2020-04-21 05:45:48 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_CREATE_PERMISSION to TURN_STATE_BIND_CHANNEL 2020-04-21 05:45:48 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_BIND_CHANNEL to TURN_STATE_READY 2020-04-21 05:45:48 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_READY to TURN_STATE_CLEAN_UP 2020-04-21 05:45:48 DEBUG turnConnectionHandleStun(): TURN Allocation freed. 2020-04-21 05:45:48 DEBUG turnConnectionStepState(): TurnConnection state changed from TURN_STATE_CLEAN_UP to TURN_STATE_NEW 2020-04-21 05:45:50 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:55 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:45:56 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:46:00 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:05 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:06 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:46:10 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:15 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:16 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:46:20 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:25 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:26 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:46:30 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:35 INFO signalingClientGetCurrentState(): Signaling Client Get Current State 2020-04-21 05:46:36 DEBUG lwsWssCallbackRoutine(): Client is writable 2020-04-21 05:46:40 INFO signalingClientGetCurrentState(): Signaling Client Get Current State ^C2020-04-21 05:46:44 INFO signalingClientGetCurrentState(): Signaling Client Get Current State [KVS GStreamer Master] Streaming session terminated [KVS GStreamer Master] Cleaning up....

chehefen commented 4 years ago

Hi can you sen

@MushMal both periodicty-idr and inline-header are not element properties for omxh264enc element see : omxh264_element.txt

Please help Thanks, Danny Marosi

I see your gstreamer release is from 2015, is it possible to update?

dannymarosi commented 4 years ago

How cam we upgrade our gstreamer? gstreamer_too_old Thanks, Danny Marosi

chehefen commented 4 years ago

@dannymarosi maybe your raspbian os is not current?

chehefen commented 4 years ago

This is the pipeline that works in my raspberry pi 3 using omxh264enc: pipeline = gst_parse_launch( "autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=30 inline-header=FALSE ! h264parse config-interval=-1 ! " "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE emit-signals=TRUE name=appsink-video", &error);

dannymarosi commented 4 years ago

@chehefen any directions on how to update gstreamer on pi jessie distribution?

kamlesh-solution commented 4 years ago

This is the pipeline that works in my raspberry pi 3 using omxh264enc: pipeline = gst_parse_launch( "autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=30 inline-header=FALSE ! h264parse config-interval=-1 ! " "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE emit-signals=TRUE name=appsink-video", &error);

Thanks @chehefen this pipeline works for me on raspberrypi zero.

AleXoundOS commented 2 years ago

Thanks @chehefen this pipeline works for me on raspberrypi zero.

@kamlesh-solution, what start delay do you get (between launch the streaming application and seeing the first video frame)?