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

Android SDK for interfacing with Amazon Kinesis Video Streams Signaling Service.
Apache License 2.0
58 stars 37 forks source link

Any tips on how to resolve missing or frozen video stream #96

Closed SinekTwo closed 10 months ago

SinekTwo commented 11 months ago

I'm using Android demo app (viewer) connected to my camera device (master) which uses C-SDK, and on many occasions I see video stream just go blank or freezes:

2023-09-27 14:14:35.684 5764-5764 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewInitializing EglRenderer 2023-09-27 14:14:35.685 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewEglBase.create shared context 2023-09-27 14:14:36.693 5764-5764 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewsetLayoutAspectRatio: 0.5346535 2023-09-27 14:14:36.698 5764-5764 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I SurfaceEglRenderer: remote_view: surfaceChanged: format: 4 size: 1080x2020 2023-09-27 14:14:39.694 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4005 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:14:39.826 5764-5894 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I SurfaceEglRenderer: remote_view: Reporting first rendered frame. 2023-09-27 14:14:39.826 5764-5894 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I SurfaceEglRenderer: remote_view: Reporting frame resolution changed to 720x1280 with rotation 0 2023-09-27 14:14:39.844 5764-5764 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewsetLayoutAspectRatio: 0.5346535 2023-09-27 14:14:43.702 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 1. Dropped: 0. Rendered: 1. Render fps: .2. Average render time: 14906 us. Average swapBuffer time: 417 us. 2023-09-27 14:14:47.711 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:14:51.718 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:14:55.727 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:14:59.735 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:15:03.743 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:15:07.751 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:15:11.759 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:15:15.768 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA. 2023-09-27 14:15:19.775 5764-5841 org.webrtc.Logging com...video.webrtc.demoapp.minsdk24 I EglRenderer: remote_viewDuration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: .0. Average render time: NA. Average swapBuffer time: NA.

Are there any tips on what to look for? This happens regardless of network type (wifi, cellural).. I did inspect network traffic and it seems UDP packets are getting through. It happens so at random, that I can't find any pattern.

Seems related to webRTC internals.

farhan56secure commented 10 months ago

@SinekTwo Hi, Did you get what was the root cause of this?

SinekTwo commented 10 months ago

@farhan56secure the problem was in the network throughput. On the master side, which uses C framework, an input video stream used too high bitrate setup , which caused the problem. The problem went away after reducing the bitrate.