<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh" -->

---
title: Network adaptive streaming with Hwangsaeul | daily.dev
description: Hwangsaeul (H8L), a remote surveillance streaming solution, implements network-adaptive streaming by continuously reading SRT socket statistics via libsrt and...
canonical: https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Network adaptive streaming with Hwangsaeul | daily.dev
og:description: Hwangsaeul (H8L), a remote surveillance streaming solution, implements network-adaptive streaming by continuously reading SRT socket statistics via libsrt and...
og:url: https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh
og:image: https://api.daily.dev/og/posts/uVDTTvsjH.png
og:image:alt: Network adaptive streaming with Hwangsaeul
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Network adaptive streaming with Hwangsaeul

**[Collabora Blog](https://daily.dev/sources/collabora)** · 5 min read · 0 upvotes · 0 comments

## Summary

Hwangsaeul (H8L), a remote surveillance streaming solution, implements network-adaptive streaming by continuously reading SRT socket statistics via libsrt and adjusting video encoder bitrate when connectivity degrades. The system uses a feedback loop from the network socket to the video encoder, with a plugin API allowing custom decision logic per use case. A hands-on demo using GStreamer's Gaeguli module shows how to build and run the adaptive streaming demo, use Linux traffic control (cap_net_admin) to simulate bandwidth throttling, and observe the encoder automatically reducing bitrate to maintain a continuous stream under constrained network conditions.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2021/02/08/network-adaptive-streaming-with-hwangsaeul>

## Questions this post answers

### How does Hwangsaeul adapt video bitrate when network conditions degrade during SRT streaming?

Hwangsaeul continuously reads statistics from open SRT sockets via libsrt and uses a feedback loop to detect connectivity issues. When packet loss or bandwidth reduction is detected, a decision plugin requests the video encoder to lower its bitrate, keeping the stream continuous at reduced quality. The plugin API exposes the full set of SRT statistics so custom decision logic can be written per use case.

_Engineers tuning SRT-based streaming pipelines for unreliable networks track approaches like this on daily.dev._

### How do I build the Hwangsaeul adaptive streaming demo with GStreamer?

Clone Hwangsaeul's gst-build fork at the h8l/adaptive-demo branch, then run `meson build` and `ninja -C build`. Enter the dev environment with `ninja -C build devenv`, navigate to `build/subprojects/gaeguli/tests/adaptor-demo/`, grant `cap_net_admin` to the `gaeguli-tc-helper` binary with `sudo setcap cap_net_admin+ep gaeguli-tc-helper`, and launch the demo with `./gaeguli-adaptor-demo -d /dev/videoX`.

_Developers building GStreamer-based streaming demos find setup walkthroughs like this on daily.dev._

## Similar posts on daily.dev

- [Valve's new Remote Play codec uses up to 10 times more bandwidth on purpose, and it's the first time streaming has felt like sitting at the PC](https://daily.dev/posts/valve-s-new-remote-play-codec-uses-up-to-10-times-more-bandwidth-on-purpose-and-it-s-the-first-time-shgxhoq8b) · XDA Developers · 1 upvotes · 0 comments
- [Live Streaming Test Runs with WebRTC](https://daily.dev/posts/live-streaming-test-runs-with-webrtc-ba86c8ksp) · QA Wolf · 0 upvotes · 0 comments
- [We Mass-Deployed 15-Year-Old Screen Sharing Technology and It's Actually Better](https://daily.dev/posts/we-mass-deployed-15-year-old-screen-sharing-technology-and-it-s-actually-better-qldjxorao) · HelixML · 35 upvotes · 2 comments
- [Behind the Streams: Real-Time Recommendations for Live Events Part 3](https://daily.dev/posts/behind-the-streams-real-time-recommendations-for-live-events-part-3-5u7i82cck) · Netflix TechBlog · 46 upvotes · 0 comments

---

[View this post on daily.dev](https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Network adaptive streaming with Hwangsaeul","url":"https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh"},"datePublished":"2026-08-11T08:56:11.363Z","dateModified":"2026-08-11T09:33:47.652Z","description":"Hwangsaeul (H8L), a remote surveillance streaming solution, implements network-adaptive streaming by continuously reading SRT socket statistics via libsrt and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ed65519df50c61273ca56e30b3c62d98?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ed65519df50c61273ca56e30b3c62d98?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Network adaptive streaming with Hwangsaeul"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/network-adaptive-streaming-with-hwangsaeul-uvdttvsjh#faq","mainEntity":[{"@type":"Question","name":"How does Hwangsaeul adapt video bitrate when network conditions degrade during SRT streaming?","acceptedAnswer":{"@type":"Answer","text":"Hwangsaeul continuously reads statistics from open SRT sockets via libsrt and uses a feedback loop to detect connectivity issues. When packet loss or bandwidth reduction is detected, a decision plugin requests the video encoder to lower its bitrate, keeping the stream continuous at reduced quality. The plugin API exposes the full set of SRT statistics so custom decision logic can be written per use case. Engineers tuning SRT-based streaming pipelines for unreliable networks track approaches like this on daily.dev."}},{"@type":"Question","name":"How do I build the Hwangsaeul adaptive streaming demo with GStreamer?","acceptedAnswer":{"@type":"Answer","text":"Clone Hwangsaeul's gst-build fork at the h8l/adaptive-demo branch, then run `meson build` and `ninja -C build`. Enter the dev environment with `ninja -C build devenv`, navigate to `build/subprojects/gaeguli/tests/adaptor-demo/`, grant `cap_net_admin` to the `gaeguli-tc-helper` binary with `sudo setcap cap_net_admin+ep gaeguli-tc-helper`, and launch the demo with `./gaeguli-adaptor-demo -d /dev/videoX`. Developers building GStreamer-based streaming demos find setup walkthroughs like this on daily.dev."}}]}
```

