-
Notifications
You must be signed in to change notification settings - Fork 0
[DRAFT] Feat/hls source support #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Introduced a new HLS ingest feature that allows for the ingestion of live HLS media playlists. - Updated the `justfile` to include a new command for HLS ingestion. - Enhanced codec handling in the video encoder to support both AVC1 and AVC3 formats. - Added new dependencies for HLS processing and updated existing ones in the Cargo files. - Refactored import logic to accommodate HLS format in the client and server modules. - Improved error handling and logging for better debugging and user experience.
…essing - Introduced a `TrackState` struct to manage video and audio tracks separately. - Updated the `HlsImporter` to handle fetching and consuming segments for both video and audio tracks. - Improved error handling and logging for track initialization and segment consumption. - Refactored methods to ensure proper initialization and segment pushing for HLS streams. - Added functionality to select audio renditions from the master playlist based on group ID.
…or handling - Added a new `HlsIngest` struct to manage HLS media playlist ingestion. - Introduced timestamp normalization to ensure playback starts at zero and remains monotonic. - Enhanced error handling for HLS processing, including specific error types for HLS-related issues. - Updated `Cargo.toml` and `Cargo.lock` to include new dependencies for HLS functionality. - Refactored existing code to integrate HLS ingest logic into the broader hang media library.
…trols - Added a private signal for manual rendition selection in the video source. - Implemented a method to set the active rendition by name. - Updated the demo HTML to include advanced options for latency and quality selection. - Integrated JavaScript functionality to dynamically adjust latency and populate quality options based on available video renditions. - Improved error handling for missing elements in the demo script.
- Added support for interactive resolution selection using `ffprobe` to allow users to choose video renditions during HLS ingestion. - Updated the `justfile` and `rs/justfile` to include new commands for interactive HLS ingestion. - Introduced `HlsResolution` struct for managing resolution inputs and updated `HlsArgs` to handle resolution options. - Enhanced `HlsConfig` to support allowed output resolutions, improving flexibility in media processing. - Refactored HLS ingestion logic to incorporate user-selected resolutions, ensuring better control over video quality.
- Removed references to AVC3 codec in the video encoder and related modules, streamlining codec checks to only support AVC1. - Updated documentation and comments to reflect the removal of AVC3, ensuring clarity in supported codecs. - Adjusted Cargo.toml and Cargo.lock to align with the changes in codec dependencies.
|
/gemini summary |
Summary of ChangesThis pull request significantly expands the media ingestion capabilities by integrating HLS (HTTP Live Streaming) as a primary source. It establishes a robust pipeline for consuming HLS streams, converting them into CMAF segments, and broadcasting them via MoQ. Key improvements include interactive controls for HLS resolution selection, enhanced UI elements in the demo for latency and quality management, and critical refinements to CMAF timestamp handling to ensure smooth and reliable playback from diverse HLS/CMAF sources. Highlights
Changelog
Activity
|
No description provided.