← Cloudflare Stream / stream / stream-live
Živé okamžité stříhání
Stream umožňuje vytvářet klipy z živých vysílání i záznamů, takže tvůrci i diváci mohou vyzdvihnout krátké poutavé úseky delšího vysílání nebo záznamu. Okamžité klipy ze živého vysílání mohou vytvářet i koncoví uživatelé, aniž by tím vznikaly další poplatky za úložiště nebo nové položky v knihovně videí.
Předpoklady
Při konfiguraci Živý vstup, ujistěte se, že je zapnuté nastavení „Live Playback and Recording“ (mode) je povoleno.
Ke generování náhledu nebo klipu nejsou API klíče potřeba, k vytvoření Live Inputs ale ano.
Živé okamžité klipy se generují dynamicky ze záznamu živého streamu. Při generování manifestů klipů nebo souborů MP4 vždy odkazujte na Video ID, nikoli na Live Input ID. Pokud je záznam smazán, okamžitý klip již nebude dostupný.
Náhled manifestu
Aby uživatelé mohli přehrávat a posouvat se v nedávném obsahu, vyžádejte si náhledový manifest přidáním duration parametr k URL adrese HLS manifestu:
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID||INPUT_ID>/manifest/video.m3u8?duration=5mdurationřetězec, délka náhledu, maximálně 5 minut, buď jako počet sekund ("30s"), nebo minut ("3m")
Když je doručen manifest náhledu, zkontrolujte v hlavičkách tyto dvě vlastnosti:
preview-start-secondsfloat sekund od začátku živého vysílání nebo záznamu, ve kterých začíná manifest náhledu. Užitečné v aplikacích, které uživateli umožňují vybrat rozsah z náhledu, protože klip bude muset odkazovat na svůj posun vůči vysílání počáteční čas, nikoli náhled počáteční čas.stream-media-idřetězec, ID videa živého vysílání nebo nahrávky. Užitečné v aplikacích, které vykreslují přehrávač pomocí vstup ID, protože adresa URL klipu by měla odkazovat na video ID.
Tento manifest lze přehrávat a posouvat pomocí libovolného přehrávače kompatibilního s HLS.
Čtení hlaviček
Čtení hlaviček při načítání manifestu vyžaduje úpravu způsobu, jakým přehrávače zpracovávají odpověď.
Pokud například používáte HLS.js ↗
a výchozí loader přepište pomocí pLoader (loader playlistu) třída:
let currentPreviewStart;
let currentPreviewVideoID;
// Override the pLoader (playlist loader) to read the manifest headers:
class pLoader extends Hls.DefaultConfig.loader {
constructor(config) {
super(config);
var load = this.load.bind(this);
this.load = function (context, config, callbacks) {
if (context.type == 'manifest') {
var onSuccess = callbacks.onSuccess;
// copy the existing onSuccess handler to fire it later.
callbacks.onSuccess = function (response, stats, context, networkDetails) {
// The fourth argument here is undocumented in HLS.js but contains
// the response object for the manifest fetch, which gives us headers:
currentPreviewStart =
parseFloat(networkDetails.getResponseHeader('preview-start-seconds'));
// Save the start time of the preview manifest
currentPreviewVideoID =
networkDetails.getResponseHeader('stream-media-id');
// Save the video ID in case the preview was loaded with an input ID
onSuccess(response, stats, context);
// And fire the existing success handler.
};
}
load(context, config, callbacks);
};
}
}
// Specify the new loader class when setting up HLS
const hls = new Hls({
pLoader: pLoader,
});Manifest klipu
Chcete-li přehrát klip živého vysílání nebo záznamu, vyžádejte si manifest klipu s délkou trvání a počátečním časem vztaženým k začátku živého vysílání.
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/manifest/clip.m3u8?time=600s&duration=30stimeřetězec, počáteční čas klipu v sekundách od začátku živého vysílání nebo nahrávkydurationřetězec, délka klipu v sekundách, maximálně 60 sekund
Tento manifest lze přehrávat a posouvat pomocí libovolného přehrávače kompatibilního s HLS.
Stažení MP4 klipu
Soubor MP4 s klipem lze také vygenerovat dynamicky, aby ho bylo možné uložit a sdílet na jiných platformách.
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/clip.mp4?time=600s&duration=30s&filename=clip.mp4timeřetězec, počáteční čas klipu v sekundách od začátku živého vysílání nebo nahrávky (příklad: "500s")durationřetězec, délka klipu v sekundách, maximálně 60 sekund (příklad: "60s")filenameřetězec (volitelné) název souboru pro klip