Releases: asrashley/dash-live
Migrate validator page to TypeScript
Migrate user management pages to TypeScript
This release replaces the server-side HTML pages for user management with client-side TypeScript Preact JSX.
Migrate front-end code to TypeScript + Preact JSX
This release replaces all JavaScript UI components with TypeScript Preact JSX components. This requires a build step before the Python
server can be used. The build step creates the entry index.html file and the compiled JavaScript bundles. The Python server uses this built index.html to serve HTTP requests for the front-end UI.
SqlAlchemy Upgrade
This release refactors the use of SqlAlchemy APIs from the v1.x APIs to the v2 APIs. This has the advantage of providing correct type hints for every field in the model.
Multi-period DASH support
This release adds experimental support for DASH streams containing multiple Period elements. Each Period is created from sections of streams already in the system. Both on-demand and live streams are supported.
Require unique track IDs for each AdaptationSet
This release changes the database schema to require that each AdaptationSet within a stream has a unique track ID. Existing media files should be auto-migrated when upgrading to this release.
MPD Patch Support
The 2022 version of the DASH specification added support for MPD patches. These are XML documents that can be applied to an in-memory
version of a complete MPD to modify the manifest. Its primary use is to avoid having to keep fetching the whole manifest for live streams that
use SegmentTimeline.
Create DRM information inside each AdaptationSet
According to the DVB DASH specification, the ContentProtection
descriptors should be placed within the AdaptationSet
, and that each
AdaptationSet
must have its own ContentProtection
descriptors if they have different license rights.
This release contains a refactored DRM implement that meets these DVB DASH rules for ContentProtection
descriptors.
Encoder script improvements
Improvements to the media encoding script:
- move codec string parsing into its own module
- update bitrate ladder to provide h.264 profile settings
- allow fragment sizes that are floating point numbers
Reverse proxy HTTPS termination
Added:
- check for X-Forwarded-Proto header in incoming requests