Video Frame Scheduler Plugin for Improving WebRTC Playback Quality
| Action | Key |
|---|---|
| Play / Pause | K or space |
| Mute / Unmute | M |
| Toggle fullscreen mode | F |
| Select next subtitles | C |
| Select next audio track | A |
| Toggle automatic slides maximization | V |
| Seek 5s backward | left arrow |
| Seek 5s forward | right arrow |
| Seek 10s backward | shift + left arrow or J |
| Seek 10s forward | shift + right arrow or L |
| Seek 60s backward | control + left arrow |
| Seek 60s forward | control + right arrow |
| Seek 1 frame backward | alt + left arrow |
| Seek 1 frame forward | alt + right arrow |
| Decrease volume | shift + down arrow |
| Increase volume | shift + up arrow |
| Decrease playback rate | < |
| Increase playback rate | > |
| Seek to end | end |
| Seek to beginning | beginning |
Share this media
HLS video stream
You can use an external player to play this stream (like VLC).
HLS video streamWhen subscribed to notifications, an email will be sent to you for all added annotations.
Your user account has no email address.
Information on this media
In WebRTC-based applications, video frames are often delivered at irregular intervals due to the nature of real-time communication. This irregularity can cause issues in waylandsink, which commits frames based on the arrival of frame_redraw_cb signals.
As a result, even when all frames are correctly delivered—for example, in a 60fps video where all 60 frames reach waylandsink—frames may still be dropped in the gst_wayland_sink_show_frame function if the redraw callback is not received in time.
On webOS devices developed by LGE, we tested 60fps video playback using cloud gaming and observed a frame drop rate of over 35% in waylandsink. In contrast, when using non-WebRTC streaming methods with more consistent frame intervals, playback was smooth with almost no frame drops under the same conditions.
To address this issue, we developed a GStreamer plugin called Video Frame Scheduler, which sits between the video decoder and sink. It schedules frame delivery at regular intervals, simulating consistent frame timing. This reduced the frame drop rate to below 10%, significantly improving playback smoothness and reliability.
In this Lightning Talk, we would like to share the challenges we encountered, the design of our solution, and engage with the GStreamer community to explore alternative or complementary approaches. We look forward to exchanging ideas and insights with fellow developers and multimedia experts.
Other media in the channel "GStreamer Conference 2025"
librice: the TURNing pointNovember 18th, 2025
5 views, 5 this year, 5 this monthClosing sessionOctober 24th, 2025
1 views, 1 this year, 1 this monthFluster newsOctober 24th, 2025
1 views, 1 this year, 1 this monthRusty Pipes and Oxidized WiresOctober 24th, 2025
1 views, 1 this year, 1 this monthdcSCTP in GStreamerOctober 24th, 2025
1 views, 1 this year, 1 this monthWhat’s New in GStreamer D3D12October 24th, 2025