NilefyMK1 runs in two places: your transcode tier and your player. What moves between them is a standard AV1 stream in a standard container, which means nothing at the edge has to know we exist. Your origin, CDN and cache rules carry on as they are.
<!-- Web binding -->
<script type="module" src="https://cdn.nilefy.com/mk1/player.js"></script>
<nilefy-player controls></nilefy-player>
// Your ladder. Your existing handlers, unchanged.
player.source = ladder;
player.addEventListener('timeupdate', beacon);
player.addEventListener('waiting', qoe.rebuffer);
Every number on this page came from a measurement, not a model: per-frame VMAF against the mezzanine, both rungs, published for every title including the ones that are hard to encode. A pilot runs on your masters, your CDN and your dashboards. Standing it up is a short piece of engineering, not a roadmap item.
Not every team wants to own a player. We build one, and you are welcome to start from it rather than from nothing.
It runs where your audience is. Not just on a good phone on a good connection. It plays on the cheapest Android handset on the market, and it stays smooth there.
It reads the connection it actually has. Delivery follows the link in front of it rather than a fixed guess about what the viewer's network is doing.
They get a single-use link that opens the demo with nothing to type. No request, no approval - you are the approval.
Nothing on this page is as useful as a title you already know. Send us a mezzanine and we will send back the ladder and the per frame numbers, measured exactly the way everything above was measured.