{"id":32164925,"url":"https://github.com/kim-company/membrane_hls_plugin","last_synced_at":"2025-10-21T14:56:09.147Z","repository":{"id":77169140,"uuid":"547180786","full_name":"kim-company/membrane_hls_plugin","owner":"kim-company","description":"Adaptive live streaming plugin (HLS) for the Membrane Framework","archived":false,"fork":false,"pushed_at":"2025-10-08T09:38:49.000Z","size":9070,"stargazers_count":10,"open_issues_count":7,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-21T14:55:38.200Z","etag":null,"topics":["elixir","hls","membrane-framework"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kim-company.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-07T09:05:22.000Z","updated_at":"2025-10-08T09:38:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"8937bde5-471f-448a-9624-a5e79a0f3948","html_url":"https://github.com/kim-company/membrane_hls_plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kim-company/membrane_hls_plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kim-company%2Fmembrane_hls_plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kim-company%2Fmembrane_hls_plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kim-company%2Fmembrane_hls_plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kim-company%2Fmembrane_hls_plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kim-company","download_url":"https://codeload.github.com/kim-company/membrane_hls_plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kim-company%2Fmembrane_hls_plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280281397,"owners_count":26303709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","hls","membrane-framework"],"created_at":"2025-10-21T14:56:07.828Z","updated_at":"2025-10-21T14:56:09.141Z","avatar_url":"https://github.com/kim-company.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Membrane HLS Plugin\n![Hex.pm Version](https://img.shields.io/hexpm/v/membrane_hls_plugin)\n\nAdaptive live streaming plugin (HLS) for the Membrane Framework, used in production.\n\n## Features\n\n### Source Element\n- Reads existing HLS streams from master playlists\n- Supports multiple renditions (video, audio, subtitles)\n- Handles dynamic playlist updates for live streams\n- Built-in storage abstraction for different backends\n\n### Sink Element (SinkBin)\n- **Multiple Container Formats**:\n  - CMAF segments (default) - Modern fragmented MP4\n  - MPEG-TS segments - Traditional transport stream\n  - Packed AAC - Audio-only streams\n  - **AAC over TS** - ⚠️ **Experimental**: Audio streams packed in Transport Stream containers\n  - WebVTT - Subtitle tracks\n\n- **Stream Types Supported**:\n  - H.264 video encoding\n  - AAC audio encoding  \n  - Text subtitles (WebVTT format)\n\n- **Operating Modes**:\n  - **Live Mode**: Real-time streaming with sliding window playlists\n    - Configurable safety delays\n    - Automatic playlist synchronization\n    - Discontinuity handling for stream interruptions\n  - **VOD Mode**: Video-on-demand with complete playlists\n\n### Advanced Features\n- **Codec Serialization**: Automatic codec string generation (avc1, hvc1, mp4a)\n- **Segment Management**: Configurable target segment durations\n- **Timeline Handling**: PTS shifting and discontinuity markers\n- **Multi-track Support**: Audio, video, and subtitle tracks in single pipeline\n\n## Architecture\n\nThe plugin is built on the Membrane Framework and integrates with the `kim_hls` library for playlist management:\n\n- `Membrane.HLS.SinkBin` - Main bin for processing input streams into HLS segments\n- `Membrane.HLS.Source` - Source element for reading HLS playlists and segments\n- Various sink implementations for different container formats\n- Automatic codec detection and stream format handling\n\n## Dependencies\n\nKey dependencies include:\n- `membrane_core` - Core Membrane Framework\n- `kim_hls` - HLS playlist and segment management\n- `membrane_mp4_plugin` - MP4/CMAF container support\n- `membrane_aac_plugin` - AAC audio processing\n- `membrane_h26x_plugin` - H.264/H.265 video processing\n- `membrane_mpeg_ts_plugin` - MPEG-TS container support\n\n## Copyright and License\nCopyright 2025, [KIM Keep In Mind GmbH](https://www.keepinmind.info/)\nLicensed under the [Apache License, Version 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkim-company%2Fmembrane_hls_plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkim-company%2Fmembrane_hls_plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkim-company%2Fmembrane_hls_plugin/lists"}