INTEGRITY Dokumentace

Ž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:

Náhled manifestu
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID||INPUT_ID>/manifest/video.m3u8?duration=5m

Když je doručen manifest náhledu, zkontrolujte v hlavičkách tyto dvě vlastnosti:

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í.

Manifest klipu
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/manifest/clip.m3u8?time=600s&duration=30s

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.

Stažení MP4 klipu
https://customer-<CODE>.cloudflarestream.com/<VIDEO_ID>/clip.mp4?time=600s&duration=30s&filename=clip.mp4