This repository automates the cross-compilation and packaging of Live555 and VLC Media Player for a wide array of platforms and architectures.
We utilize a dual-track CI/CD pipeline:
- Live555 Matrix Builder: Tracks upstream releases, compiles static libraries (
.a) targeting diverse architectures, and archives raw binaries. - VLC Matrix Builder: Cross-compiles VLC, linking dynamically to the pre-compiled Live555 static libraries. It generates both raw binary tarballs and platform-native installers.
All compiled artifacts (both raw binaries and native installers) are committed to the repository and attached to the GitHub Release page using the following hierarchical convention:
compiled/
└── <OS>/ # (e.g., linux, mingw, macosx-bigsur)
├── live555/
│ └── <Version>/ # Raw Live555 binaries and installers
└── vlc/
└── <Version>/ # Raw VLC binaries and native installers
The build pipeline is triggered automatically via:
- Schedule: Every 6 hours to check for upstream Live555 changes.
- Push: Any commit to the
mainbranch triggers a full build of VLC. - Manual: Trigger a build via GitHub Actions "Workflow Dispatch" for specific tracks (
dev,stable, orboth).
To handle heavy compilation tasks, we use a custom Docker-based GitHub Actions runner. The infrastructure configuration is located under ./github-runners/.
- Ensure
dockeranddocker-composeare installed. - Navigate to
./github-runners/. - Run
docker-compose up -dto spin up the registered self-hosted runner. - The runner is pre-configured with the necessary cross-compilation toolchains (
mingw-w64,gcc-arm-linux-gnueabi, etc.).
To ensure the best playback performance on Linux using our builds, please enable hardware acceleration manually:
- Open Tools > Preferences.
- Switch to the Input / Codecs tab.
- Under Hardware-accelerated decoding, select VA-API (for Intel/AMD) or the appropriate option for your GPU.
- Click Save and restart VLC.
Note: Ensure your system has the appropriate drivers (e.g.,
intel-media-va-driver) installed.