> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Solutions Glossary

> Key terms from the Livepeer Solutions section – use cases, product offerings, AI pipelines, video infrastructure, and integration patterns.

export const LinkIcon = ({href, target = '_blank', rel = 'noopener noreferrer', style = {}, className = '', icon = 'arrow-up-right-from-square', size = 12, ...iconProps}) => {
  return <a href={href} target={target} rel={rel} className={className} style={{
    borderBottom: 'none',
    textDecoration: 'none',
    ...style
  }}>
      <Icon icon={icon} size={size} {...iconProps} />
    </a>;
};

export const CopyText = ({text, label, className = '', style = {}, ...rest}) => {
  const handleCopy = () => {
    navigator.clipboard.writeText(text);
  };
  return <span className={className} style={{
    display: 'flex',
    alignItems: 'center',
    padding: '0.2rem 0.4rem',
    borderRadius: "4px",
    fontSize: '0.85rem',
    fontFamily: 'monospace',
    backgroundColor: 'var(--lp-color-bg-card)',
    border: '1px solid var(--lp-color-border-default)',
    minWidth: 0,
    overflow: 'hidden',
    ...style
  }} {...rest}>
      {label && <strong style={{
    flexShrink: 0,
    marginRight: "var(--lp-spacing-2)"
  }}>{label}</strong>}
      <span style={{
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap',
    flex: 1,
    minWidth: 0
  }}>
        {text}
      </span>
      <button onClick={handleCopy} style={{
    background: 'none',
    border: 'none',
    cursor: 'pointer',
    padding: '0 0 0 0.4rem',
    display: 'inline-flex',
    alignItems: 'center',
    color: 'var(--lp-color-text-secondary)',
    flexShrink: 0
  }} title="Copy to clipboard">
        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
          <rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
          <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
        </svg>
      </button>
    </span>;
};

export const glossaryBadges = [{
  color: 'blue',
  label: 'Video'
}, {
  color: 'purple',
  label: 'AI'
}, {
  color: 'green',
  label: 'Livepeer'
}, {
  color: 'yellow',
  label: 'Technical'
}];

export const LazyLoad = ({children, height = "200px", offset = "200px", fadeDuration = 400, className = "", style = {}, ...rest}) => {
  const ref = useRef(null);
  const [visible, setVisible] = useState(false);
  const [ready, setReady] = useState(false);
  useEffect(() => {
    const el = ref.current;
    if (!el) return;
    const observer = new IntersectionObserver(([entry]) => {
      if (entry.isIntersecting) {
        setVisible(true);
        observer.disconnect();
      }
    }, {
      rootMargin: offset
    });
    observer.observe(el);
    return () => observer.disconnect();
  }, []);
  useEffect(() => {
    if (!visible) return;
    const frameId = requestAnimationFrame(() => {
      setReady(true);
    });
    return () => cancelAnimationFrame(frameId);
  }, [visible]);
  const placeholder = <div ref={ref} className={className} style={{
    minHeight: height,
    ...style
  }} {...rest} />;
  if (!visible) return placeholder;
  return <div ref={ref} className={className} style={{
    opacity: ready ? 1 : 0,
    transition: `opacity ${fadeDuration}ms ease-in`,
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

export const DynamicTable = ({tableTitle = null, headerList = [], itemsList = [], monospaceColumns = [], columnWidths = {}, contentFitColumns = [], showSeparators = false, margin, className = "", style = {}, ...rest}) => {
  if (!headerList.length) {
    return <div>No headers provided</div>;
  }
  const safeContentFitColumns = Array.isArray(contentFitColumns) ? contentFitColumns : [];
  const usesContentFitColumns = safeContentFitColumns.length > 0;
  const isContentFitColumn = header => safeContentFitColumns.includes(header);
  const getColumnStyle = header => {
    const widthStyle = columnWidths[header] ? {
      width: columnWidths[header],
      minWidth: columnWidths[header],
      maxWidth: columnWidths[header]
    } : {};
    const contentFitStyle = !columnWidths[header] && isContentFitColumn(header) ? {
      width: "1%",
      whiteSpace: "nowrap"
    } : {};
    return {
      ...contentFitStyle,
      ...widthStyle
    };
  };
  return <div className={className} style={style} {...rest}>
      {tableTitle && <div style={{
    fontStyle: "italic",
    margin: 0
  }}>
          <strong>{tableTitle}</strong>
        </div>}
      <div style={{
    overflowX: "auto",
    ...margin != null && ({
      margin
    })
  }} role="region" tabIndex={0} aria-label={tableTitle ? `Scrollable table: ${tableTitle}` : "Scrollable table"}>
        <table data-docs-dynamic-table style={{
    width: "100%",
    tableLayout: usesContentFitColumns ? "auto" : "fixed",
    borderCollapse: "collapse",
    fontSize: "0.9rem",
    marginTop: 0
  }}>
          <thead>
            <tr style={{
    backgroundColor: "var(--lp-color-accent)",
    color: "var(--lp-color-on-accent)",
    borderBottom: "1px solid var(--lp-color-border-default)"
  }}>
              {headerList.map((header, index) => <th key={index} style={{
    padding: "10px 8px",
    textAlign: "left",
    fontWeight: "600",
    color: "var(--lp-color-on-accent)",
    ...getColumnStyle(header)
  }}>
                  {header}
                </th>)}
            </tr>
          </thead>
          <tbody>
            {itemsList.filter(item => showSeparators || !item?.__separator).map((item, rowIndex) => item?.__separator ? <tr key={rowIndex} style={{
    backgroundColor: "var(--lp-color-accent)",
    color: "var(--lp-color-on-accent)",
    borderBottom: "1px solid var(--lp-color-accent)"
  }}>
                  <td colSpan={headerList.length} style={{
    padding: "6px 8px",
    fontWeight: "700",
    color: "var(--lp-color-on-accent)",
    letterSpacing: "0.01em"
  }}>
                    {(item[headerList[0]] ?? item.Category) ?? "Category"}
                  </td>
                </tr> : <tr key={rowIndex} style={{
    borderBottom: "1px solid var(--lp-color-border-default)"
  }}>
                  {headerList.map((header, colIndex) => {
    const value = (item[header] ?? item[header.toLowerCase()]) ?? "-";
    const isMonospace = monospaceColumns.includes(colIndex);
    return <td key={colIndex} style={{
      padding: "8px 8px",
      fontFamily: isMonospace ? "monospace" : "inherit",
      wordWrap: "break-word",
      overflowWrap: "break-word",
      ...getColumnStyle(header)
    }}>
                        {isMonospace ? <code>{value}</code> : value}
                      </td>;
  })}
                </tr>)}
          </tbody>
        </table>
      </div>
    </div>;
};

export const SearchTable = ({TableComponent = null, tableTitle = null, headerList = [], itemsList = [], monospaceColumns = [], margin, searchPlaceholder = 'Search...', searchColumns = [], categoryColumn = 'Category', filterColumns = [], columnWidths = {}, contentFitColumns = [], columnVariant = {}, categoryBadges = [], textIcons = [], showSeparators = false, separatorColumn = null, boldFirstColumn = true, className = '', style = {}}) => {
  const allFilterCols = [categoryColumn, ...filterColumns];
  const [query, setQuery] = useState('');
  const [selections, setSelections] = useState(() => {
    const init = {};
    allFilterCols.forEach(col => {
      init[col] = 'All';
    });
    return init;
  });
  const safeHeaderList = Array.isArray(headerList) ? headerList : [];
  const safeItemsList = Array.isArray(itemsList) ? itemsList : [];
  const safeMonospaceColumns = Array.isArray(monospaceColumns) ? monospaceColumns : [];
  const safeSearchColumns = Array.isArray(searchColumns) ? searchColumns : [];
  const activeColumns = safeSearchColumns.length ? safeSearchColumns : safeHeaderList;
  const normalizedQuery = query.trim().toLowerCase();
  const badgeColorMap = {};
  categoryBadges.forEach(b => {
    badgeColorMap[b.label.toLowerCase()] = b.color;
  });
  const textIconMap = {};
  textIcons.forEach(t => {
    textIconMap[t.label.toLowerCase()] = t.icon;
  });
  const getOptionsForColumn = (colName, colIndex) => {
    let scoped = safeItemsList;
    for (let i = 0; i < colIndex; i++) {
      const prevCol = allFilterCols[i];
      const prevSel = selections[prevCol];
      if (prevSel !== 'All') {
        scoped = scoped.filter(item => String(item?.[prevCol] || '') === prevSel);
      }
    }
    return [...new Set(scoped.map(item => String(item?.[colName] || '')).filter(Boolean))].sort((a, b) => a.localeCompare(b, 'en', {
      sensitivity: 'base'
    }));
  };
  const filteredItems = safeItemsList.filter(item => allFilterCols.every(col => {
    const sel = selections[col];
    return sel === 'All' || String(item?.[col] || '') === sel;
  }));
  const searchedItems = !normalizedQuery ? filteredItems : filteredItems.filter(item => activeColumns.some(column => {
    const value = (item?.[column] ?? item?.[String(column).toLowerCase()]) ?? '';
    return String(value).toLowerCase().includes(normalizedQuery);
  }));
  const sortedItems = [...searchedItems].sort((a, b) => {
    for (const col of allFilterCols) {
      const cmp = String(a[col] || '').localeCompare(String(b[col] || ''), 'en', {
        sensitivity: 'base'
      });
      if (cmp !== 0) return cmp;
    }
    return 0;
  });
  const firstColumnName = safeHeaderList[0];
  const renderVariant = (value, variant, item, header) => {
    if (variant === 'bold' && typeof value === 'string') {
      return <strong>{value}</strong>;
    }
    if (variant === 'badge' && typeof value === 'string') {
      const colorName = badgeColorMap[value.toLowerCase()];
      if (colorName) {
        return <Badge color={colorName}>{value}</Badge>;
      }
    }
    if (variant === 'textIcon' && typeof value === 'string') {
      const icon = textIconMap[value.toLowerCase()];
      if (icon) {
        return <span style={{
          display: 'inline-flex',
          alignItems: 'center',
          gap: '0.35rem'
        }}>
            {icon} {value}
          </span>;
      }
    }
    if (variant === 'addressWrapper' && typeof value === 'string') {
      const href = item?.[`_${header}Href`] ?? item?._addressHref;
      return <div style={{
        display: 'flex',
        alignItems: 'center',
        gap: '0.35rem',
        width: '100%',
        minWidth: 0
      }}>
          <CopyText text={value} style={{
        flex: 1
      }} />
          {href && <LinkIcon href={href} color="var(--lp-color-accent)" />}
        </div>;
    }
    return value;
  };
  const displayItems = sortedItems.map(item => {
    const out = {
      ...item,
      _sepKey: String(item[separatorColumn || categoryColumn] || '')
    };
    for (const header of safeHeaderList) {
      if (columnVariant[header] && out[header] !== undefined) {
        out[header] = renderVariant(out[header], columnVariant[header], item, header);
      }
    }
    if (boldFirstColumn && firstColumnName && !columnVariant[firstColumnName] && typeof out[firstColumnName] === 'string') {
      out[firstColumnName] = <strong>{out[firstColumnName]}</strong>;
    }
    return out;
  });
  const withSeparators = [];
  let lastSep = '';
  displayItems.forEach(item => {
    const sepKey = item._sepKey || '';
    if (showSeparators && sepKey && sepKey !== lastSep) {
      withSeparators.push({
        __separator: true,
        [safeHeaderList[0]]: sepKey.toUpperCase()
      });
      lastSep = sepKey;
    }
    withSeparators.push(item);
  });
  const selectStyle = {
    minWidth: '150px',
    padding: '8px 12px',
    borderRadius: '8px',
    border: '1px solid var(--lp-color-border-default)',
    background: 'var(--lp-color-bg-page)',
    color: 'var(--lp-color-text-secondary)'
  };
  const updateSelection = (col, colIndex, value) => {
    const next = {
      ...selections,
      [col]: value
    };
    for (let i = colIndex + 1; i < allFilterCols.length; i++) {
      next[allFilterCols[i]] = 'All';
    }
    setSelections(next);
  };
  return <div className={className} style={style}>
      <div style={{
    marginBottom: "var(--lp-spacing-2)",
    display: 'flex',
    flexWrap: 'wrap',
    gap: "var(--lp-spacing-2)",
    alignItems: 'center'
  }}>
        <input type="text" value={query} placeholder={searchPlaceholder} onChange={e => setQuery(e.target.value)} aria-label="Filter table rows" style={{
    width: '100%',
    maxWidth: '420px',
    padding: '8px 12px',
    borderRadius: '8px',
    border: '1px solid var(--lp-color-border-default)',
    background: 'var(--lp-color-bg-page)',
    color: 'var(--lp-color-text-secondary)'
  }} />
        {allFilterCols.map((col, colIndex) => {
    const options = getOptionsForColumn(col, colIndex);
    if (options.length === 0) return null;
    const parentLabel = colIndex > 0 && selections[allFilterCols[colIndex - 1]] !== 'All' ? selections[allFilterCols[colIndex - 1]] : col.toLowerCase() + 's';
    return <select key={col} value={selections[col]} onChange={e => updateSelection(col, colIndex, e.target.value)} aria-label={`Filter by ${col}`} style={selectStyle}>
              <option value="All">All {parentLabel}</option>
              {options.map(o => <option key={o} value={o}>
                  {o}
                </option>)}
            </select>;
  })}
      </div>

      {typeof TableComponent === 'function' ? <TableComponent tableTitle={tableTitle} headerList={safeHeaderList} itemsList={withSeparators} monospaceColumns={safeMonospaceColumns} columnWidths={columnWidths} contentFitColumns={contentFitColumns} showSeparators={showSeparators} margin={margin} /> : <Warning>SearchTable requires a `TableComponent` prop.</Warning>}
    </div>;
};

{/* ==========================SECTION: SEARCH TIP========================= */}

<Tip>
  **Finding terms quickly**

  * **Cmd+K** (Mac) / **Ctrl+K** (Windows) – search all Livepeer docs
  * **Cmd+F** (Mac) / **Ctrl+F** (Windows) – search within this page
  * Use the category filter below to narrow by topic
</Tip>

<Note>
  Machine-readable term index: [glossary-data.json](./glossary-data.json)
</Note>

Terms used across Livepeer Solutions – covering video infrastructure, Studio products, AI pipelines, access control, and integration patterns for developers building with Livepeer.

<CustomDivider />

<LazyLoad height="600px">
  <SearchTable
    TableComponent={DynamicTable}
    showSeparators={true}
    filterColumns={["Niche"]}
    columnWidths={{ Definition: '65%' }}
    columnVariant={{ Category: "badge" }}
    categoryBadges={glossaryBadges}
    headerList={["Term", "Category", "Niche", "Definition"]}
    searchColumns={["Term", "Definition"]}
    itemsList={[
{ Term: "ABR (Adaptive Bitrate)", Category: "video", Niche: "encoding", Definition: "Streaming technique that detects viewer bandwidth in real time and switches between pre-encoded bitrate levels to maintain continuous playback." },
{ Term: "Access Control", Category: "video", Niche: "studio", Definition: "Restricts who can view streams or assets via signed JWTs, API keys, or webhook authorization callbacks." },
{ Term: "AES-CBC", Category: "technical", Niche: "security", Definition: "AES in Cipher Block Chaining mode – symmetric encryption where each plaintext block is XOR'd with the previous ciphertext block before encryption." },
{ Term: "API Key", Category: "technical", Niche: "dev", Definition: "Secret unique identifier sent with API requests to authenticate the caller and authorize access to platform resources." },
{ Term: "Asset", Category: "video", Niche: "studio", Definition: "Stored video file (VOD) managed by Livepeer Studio, identified by a unique ID with associated metadata and playback URLs." },
{ Term: "AT Protocol", Category: "technical", Niche: "social", Definition: "Authenticated Transfer Protocol – open decentralized social networking standard developed by Bluesky, enabling federated identity and data portability." },
{ Term: "Avatar", Category: "ai", Niche: "application", Definition: "Graphical representation of a user or AI entity, ranging from 2D images to fully animated 3D digital characters driven by AI models." },
{ Term: "B-frames", Category: "video", Niche: "encoding", Definition: "Bidirectional predicted video frames that reference both preceding and following frames to achieve the highest compression ratio in a coded video stream." },
{ Term: "Bearer Token", Category: "technical", Niche: "dev", Definition: "Access token carried in an HTTP Authorization header, used by API clients to authenticate requests without re-sending credentials." },
{ Term: "Bitrate", Category: "video", Niche: "encoding", Definition: "Number of bits conveyed per second of video; determines the data throughput rate of an encoded stream, directly affecting quality and file size." },
{ Term: "Broadcaster (deprecated)", Category: "livepeer", Niche: "role", Definition: "Legacy term for a node that published streams and submitted video for transcoding; replaced by the term 'Gateway' in current protocol documentation." },
{ Term: "C2PA", Category: "technical", Niche: "security", Definition: "Coalition for Content Provenance and Authenticity – open standard producing tamper-evident manifests that record the origin and edit history of media files." },
{ Term: "CBR (Constant Bitrate)", Category: "video", Niche: "encoding", Definition: "Video encoding mode where the output data rate remains constant regardless of content complexity, trading compression efficiency for predictable file sizes." },
{ Term: "Clip", Category: "video", Niche: "studio", Definition: "Short excerpt from a livestream or VOD asset defined by start and end timestamps, used for highlights or shareable segments." },
{ Term: "CORS (Cross-Origin Resource Sharing)", Category: "technical", Niche: "dev", Definition: "HTTP mechanism that lets servers specify which origins outside their own domain are allowed to make browser requests to their resources." },
{ Term: "CRF (Constant Rate Factor)", Category: "video", Niche: "encoding", Definition: "Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality." },
{ Term: "Dashboard", Category: "video", Niche: "studio", Definition: "Web-based management interface in Livepeer Studio for creating and managing streams, assets, API keys, and viewing analytics." },
{ Term: "Daydream", Category: "livepeer", Niche: "product", Definition: "Livepeer's hosted real-time AI video platform that turns live camera input into AI-transformed visuals with sub-second latency." },
{ Term: "Embody", Category: "livepeer", Niche: "product", Definition: "Special Purpose Entity bringing embodied avatar workloads (Live2D, Three.js, Unreal Engine) into Livepeer as intelligent public pipelines." },
{ Term: "Encrypted Asset", Category: "technical", Niche: "security", Definition: "Media file protected by encryption at rest so that only authorized parties holding the correct decryption key can access its content." },
{ Term: "Endpoint", Category: "technical", Niche: "dev", Definition: "Specific URL path at which an API receives requests and returns responses for a defined operation." },
{ Term: "Fediverse", Category: "technical", Niche: "social", Definition: "Federation of social networking platforms that communicate via open protocols such as ActivityPub, enabling cross-platform interaction without centralized control." },
{ Term: "Frameworks", Category: "livepeer", Niche: "product", Definition: "Product by the MistServer team bridging Livepeer's transcoding infrastructure and real-world applications; provides libraries and integration tools for embedding Livepeer services." },
{ Term: "Gateway", Category: "livepeer", Niche: "role", Definition: "Node that submits jobs, routes video or AI work to orchestrators, manages payment flows, and provides a protocol interface between users and the Livepeer Network." },
{ Term: "HLS (HTTP Live Streaming)", Category: "video", Niche: "protocol", Definition: "Apple's adaptive streaming protocol that encodes video into multiple quality levels, segments them, and serves them with an index playlist (.m3u8) over standard HTTP." },
{ Term: "Ingest", Category: "video", Niche: "processing", Definition: "Process of receiving a live video stream from a broadcaster's encoder into a media server, typically over RTMP, SRT, or WebRTC/WHIP." },
{ Term: "JSON (JavaScript Object Notation)", Category: "technical", Niche: "protocol", Definition: "Lightweight, human-readable data interchange format using key-value pairs and ordered lists, widely used for API request and response bodies." },
{ Term: "JWT (JSON Web Token)", Category: "technical", Niche: "security", Definition: "Compact, URL-safe token format carrying signed claims used for stateless authentication; in video access control, a signed JWT proves viewer entitlement without a server round-trip for every request." },
{ Term: "Keyframe Interval", Category: "video", Niche: "encoding", Definition: "Distance in frames or seconds between consecutive keyframes (I-frames); a shorter interval improves seeking accuracy while a longer interval improves compression efficiency." },
{ Term: "Latency", Category: "video", Niche: "playback", Definition: "Time delay accumulating between video capture at the source and display on the viewer's device, incurred at every stage of the encode-ingest-transcode-deliver pipeline." },
{ Term: "Livepeer Network", Category: "livepeer", Niche: "protocol", Definition: "The live operational decentralized system of orchestrators, workers, gateways, and broadcasters performing video transcoding and AI inference work." },
{ Term: "Livepeer Studio", Category: "livepeer", Niche: "product", Definition: "Hosted developer platform providing APIs, SDKs, and a dashboard for adding live and on-demand video experiences to applications, backed by the Livepeer Network." },
{ Term: "Livestream", Category: "video", Niche: "playback", Definition: "Real-time or near-real-time transmission of video and audio over a network to viewers as it is captured, without pre-recording." },
{ Term: "Low-Latency", Category: "video", Niche: "streaming", Definition: "A system characteristic where the delay between an event occurring and a response being delivered is minimised; in Livepeer, sub-500ms round-trip times are targeted for real-time AI video pipelines." },
{ Term: "MistServer", Category: "technical", Niche: "infra", Definition: "Open-source media server providing live video ingest, transcoding, and delivery capabilities, used within Livepeer's infrastructure to handle protocol translation and stream routing." },
{ Term: "MP4", Category: "video", Niche: "playback", Definition: "MPEG-4 Part 14 digital multimedia container format for storing video, audio, subtitles, and still images in a single file." },
{ Term: "Multistream", Category: "video", Niche: "studio", Definition: "Simultaneous restreaming of a single live input to multiple external destination platforms (e.g., YouTube, Twitch) in a single broadcast session." },
{ Term: "OBS (Open Broadcaster Software)", Category: "video", Niche: "playback", Definition: "Free, open-source application for screen capture and live streaming, supporting RTMP, RTMPS, SRT, and WebRTC output protocols." },
{ Term: "Orchestrator", Category: "livepeer", Niche: "role", Definition: "Supply-side operator contributing GPU or CPU resources to the Livepeer Network; receives jobs from gateways, performs transcoding or AI inference, and earns ETH fees and LPT rewards." },
{ Term: "Playback ID", Category: "video", Niche: "studio", Definition: "Public identifier for retrieving playback URLs for a stream or asset without exposing the private stream key or internal asset ID." },
{ Term: "Playback Policy", Category: "video", Niche: "studio", Definition: "Access rules (public or JWT-required) attached to a stream or asset that determine what authentication viewers must present before playback is allowed." },
{ Term: "Player", Category: "video", Niche: "playback", Definition: "Livepeer's embeddable video player component (lvpr.tv) with built-in support for HLS adaptive bitrate streaming and WebRTC low-latency fallback." },
{ Term: "Project", Category: "video", Niche: "studio", Definition: "Organizational container in Livepeer Studio that groups related streams, assets, and API keys under a single namespace for multi-tenant or multi-environment management." },
{ Term: "Provenance", Category: "technical", Niche: "security", Definition: "Verified chain of custody and edit history of a digital asset, confirming its origin and tracking modifications over time." },
{ Term: "Rebuffer Ratio", Category: "video", Niche: "playback", Definition: "Rebuffering duration divided by total playback duration, expressing the fraction of viewing time spent waiting for the player to buffer data." },
{ Term: "Recording", Category: "video", Niche: "studio", Definition: "Stored archive of a live stream session automatically saved as a VOD asset when recording is enabled on the stream object." },
{ Term: "Rendition", Category: "video", Niche: "processing", Definition: "Single encoded version of a source video at a specific resolution, bitrate, and codec configuration, produced during transcoding." },
{ Term: "Resolution", Category: "video", Niche: "encoding", Definition: "Pixel dimensions of a video frame expressed as width × height (e.g., 1920×1080); common tiers are 360p, 480p, 720p, 1080p, and 4K." },
{ Term: "REST (Representational State Transfer)", Category: "technical", Niche: "protocol", Definition: "Architectural style for distributed hypermedia systems using standard HTTP methods (GET, POST, PUT, DELETE) for stateless resource interaction." },
{ Term: "Room", Category: "video", Niche: "studio", Definition: "Multi-participant WebRTC video session managed by Livepeer Studio, enabling multiple users to simultaneously broadcast and receive audio and video." },
{ Term: "RTMP (Real-Time Messaging Protocol)", Category: "video", Niche: "protocol", Definition: "TCP-based protocol for streaming audio, video, and data over a network, operating on port 1935; the dominant ingest protocol for live broadcasting software." },
{ Term: "RTMPS", Category: "video", Niche: "protocol", Definition: "RTMP transported over a TLS/SSL connection, adding encryption to protect live video streams and metadata during ingest." },
{ Term: "SDK (Software Development Kit)", Category: "technical", Niche: "dev", Definition: "Collection of tools, libraries, and documentation enabling developers to build applications that integrate with a platform's APIs." },
{ Term: "Segment", Category: "video", Niche: "processing", Definition: "Time-sliced chunk of a video stream (typically 2–10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery." },
{ Term: "Segmentation", Category: "video", Niche: "processing", Definition: "Process of dividing a continuous video stream into short discrete chunks for HTTP-based delivery and adaptive bitrate switching between quality levels." },
{ Term: "Session", Category: "livepeer", Niche: "protocol", Definition: "Active connection between a gateway and orchestrator, or in Studio terms, a single continuous broadcast period on a Stream object with its own metrics, recording, and viewership data." },
{ Term: "Signing Key", Category: "video", Niche: "studio", Definition: "Public/private cryptographic keypair used to sign and verify JWTs that gate access to access-controlled streams and assets in Livepeer Studio." },
{ Term: "SPE (Special Purpose Entity)", Category: "livepeer", Niche: "entity", Definition: "Treasury-funded organizational unit with a defined scope, budget, accountability structure, and term length, used to execute specific ecosystem workstreams." },
{ Term: "SRT (Secure Reliable Transport)", Category: "video", Niche: "protocol", Definition: "Open-source UDP-based streaming protocol with packet recovery, low latency, and built-in AES encryption, designed for reliable transmission over unpredictable networks." },
{ Term: "Stream", Category: "video", Niche: "studio", Definition: "Top-level Livepeer Studio object representing a live broadcast channel, configured with a stream key, playback ID, transcoding profiles, and optional recording and multistream settings." },
{ Term: "Stream Key", Category: "video", Niche: "studio", Definition: "Secret credential used by broadcasters to authenticate and push live video to a stream's ingest endpoint; equivalent to a password for the RTMP or SRT connection." },
{ Term: "StreamDiffusion", Category: "ai", Niche: "model", Definition: "Optimized real-time diffusion pipeline using stream batching and stochastic similarity filtering to apply generative image transformations to live video at interactive frame rates." },
{ Term: "Streamplace", Category: "livepeer", Niche: "product", Definition: "Project building the video infrastructure layer for decentralized social platforms, focused on the AT Protocol ecosystem and enabling open video publishing." },
{ Term: "Thumbnail", Category: "video", Niche: "playback", Definition: "Reduced-size preview image representing a video frame, used for recognition, navigation, and social sharing previews." },
{ Term: "Transcoding", Category: "video", Niche: "processing", Definition: "Direct digital-to-digital conversion of video from one encoding configuration to another, producing multiple adaptive renditions at different resolutions and bitrates for cross-device delivery." },
{ Term: "TTFF (Time to First Frame)", Category: "video", Niche: "playback", Definition: "Duration from the moment a viewer presses play to the first video frame rendered on screen; a key quality-of-experience metric for streaming performance." },
{ Term: "TUS Upload", Category: "technical", Niche: "security", Definition: "Resumable file upload protocol over HTTP that allows interrupted large file uploads to resume from where they stopped rather than restarting from the beginning." },
{ Term: "Video on Demand (VOD)", Category: "video", Niche: "delivery", Definition: "A media delivery model where recorded video content is stored server-side and streamed to viewers on request at any time, in contrast to live streaming." },
{ Term: "Viewership", Category: "video", Niche: "studio", Definition: "Audience metrics including view counts, watch time, unique viewers, and geographic distribution tracked for streams and assets." },
{ Term: "VOD (Video on Demand)", Category: "video", Niche: "playback", Definition: "Video delivery model allowing users to access pre-recorded content at any time of their choosing, as opposed to a scheduled live broadcast." },
{ Term: "Webhook", Category: "technical", Niche: "dev", Definition: "HTTP callback mechanism where a server sends an automated POST request to a configured URL when a specified platform event occurs." },
{ Term: "WebRTC (Web Real-Time Communication)", Category: "video", Niche: "protocol", Definition: "Open-source project and W3C/IETF standard providing browsers and mobile apps with peer-to-peer real-time audio, video, and data exchange over UDP." },
{ Term: "WebVTT (Web Video Text Tracks)", Category: "video", Niche: "playback", Definition: "W3C standard format for displaying timed text (captions, subtitles, chapters, metadata) synchronized with HTML5 video playback." },
{ Term: "WHEP (WebRTC-HTTP Egress Protocol)", Category: "video", Niche: "protocol", Definition: "IETF draft protocol enabling viewers to watch content from streaming services via WebRTC using a standardized SDP offer/answer HTTP exchange." },
{ Term: "WHIP (WebRTC-HTTP Ingestion Protocol)", Category: "video", Niche: "protocol", Definition: "RFC 9725 standard protocol for WebRTC-based live video ingestion via a simple HTTP SDP offer/answer exchange, enabling browser-native broadcasting without plugins." },
{ Term: "World Model", Category: "ai", Niche: "application", Definition: "Neural network that represents and predicts environment dynamics, enabling an AI agent to plan by simulating outcomes rather than acting purely from direct observation." },
]}
  />
</LazyLoad>

<CustomDivider />

## Livepeer Protocol Terms

<AccordionGroup>
  <Accordion title="Broadcaster (deprecated)" icon="book-open">
    **Definition**: Legacy term for a node that published streams and submitted video for transcoding; replaced by the term "Gateway" in current protocol documentation.

    **Also known as**: Gateway (current term)

    **External**: [Livepeer Whitepaper](https://github.com/livepeer/wiki/blob/master/WHITEPAPER.md)

    **Status**: deprecated – use "Gateway"

    **Pages**: `solutions/livestreaming`
  </Accordion>

  <Accordion title="Gateway" icon="book-open">
    **Definition**: Node that submits jobs, routes video or AI work to Orchestrators, manages payment flows, and provides a protocol interface between users and the Livepeer Network.

    **Context**: In the Solutions context, the Gateway is the network layer that Livepeer Studio uses internally to deliver transcoding and AI services; developers using Studio APIs interact with it indirectly through the Studio API rather than connecting to Gateway nodes directly.

    **Status**: current

    **Pages**: `solutions/network`
  </Accordion>

  <Accordion title="Livepeer Network" icon="book-open">
    **Definition**: The live operational decentralised system of Orchestrators, workers, Gateways, and broadcasters performing video transcoding and AI inference work.

    **Context**: From the Solutions perspective, the Livepeer Network is the underlying compute layer that Livepeer Studio draws on; when a Studio API call triggers transcoding, the work is dispatched to Orchestrator nodes on the network rather than processed on centralised servers.

    **Status**: current

    **Pages**: `solutions/index`, `solutions/network`
  </Accordion>

  <Accordion title="Orchestrator" icon="book-open">
    **Definition**: Supply-side operator contributing GPU or CPU resources to the Livepeer Network; receives jobs from Gateways, performs transcoding or AI inference, and earns ETH fees and LPT rewards.

    **Context**: In the Solutions tab, Orchestrators are referenced as the network layer powering Livepeer Studio's transcoding and AI pipeline features; they are distinct from Studio itself and operate independently on the Livepeer Network.

    **Status**: current

    **Pages**: `solutions/network`, `solutions/architecture`
  </Accordion>

  <Accordion title="Segment" icon="book-open">
    **Definition**: Time-sliced chunk of a video stream (typically 2–10 seconds) independently addressable over HTTP and used as the unit of transcoding and adaptive delivery.

    **External**: [HTTP Live Streaming – Wikipedia](https://en.wikipedia.org/wiki/HTTP_Live_Streaming)

    **Status**: current

    **Pages**: `solutions/transcoding`, `solutions/encoding`
  </Accordion>

  <Accordion title="Session" icon="book-open">
    **Definition**: Active connection between a Gateway and Orchestrator, or in Studio terms, a single continuous broadcast period on a Stream object with its own metrics, recording, and viewership data.

    **Context**: In Livepeer Studio, each time a broadcaster connects to a Stream's ingest endpoint a new Session is created; sessions capture per-broadcast metadata including duration, bitrate, and recording status, and are queryable via the API after the stream ends.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/api`
  </Accordion>

  <Accordion title="SPE (Special Purpose Entity)" icon="book-open">
    **Definition**: Treasury-funded organizational unit with a defined scope, budget, accountability structure, and term length, used to execute specific ecosystem workstreams.

    **Context**: In the Solutions tab, SPEs such as Streamplace, Embody, and Daydream are referenced as platform-layer projects funded through the Livepeer governance treasury to build products and capabilities on top of the network.

    **Status**: current

    **Pages**: `solutions/governance`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Livepeer Product Terms

<AccordionGroup>
  <Accordion title="Dashboard" icon="book-open">
    **Definition**: Web-based management interface in Livepeer Studio for creating and managing streams, assets, API keys, and viewing analytics.

    **Context**: The Livepeer Studio Dashboard is the primary no-code interface; developers use it to generate stream keys, copy playback IDs, configure multistream targets, and inspect viewership data without writing API calls.

    **Status**: current

    **Pages**: `solutions/dashboard`, `solutions/index`
  </Accordion>

  <Accordion title="Daydream" icon="book-open">
    **Definition**: Livepeer's hosted real-time AI video platform that turns live camera input into AI-transformed visuals with sub-second latency.

    **Context**: Daydream is a Livepeer-built product demonstrating the network's real-time AI video capabilities; it provides an interactive interface where users apply generative pipelines to live streams in the browser.

    **Status**: current

    **Pages**: `solutions/ai`
  </Accordion>

  <Accordion title="Embody" icon="book-open">
    **Definition**: Special Purpose Entity bringing embodied avatar workloads (Live2D, Three.js, Unreal Engine) into Livepeer as intelligent public pipelines.

    **Context**: Embody is a Livepeer ecosystem SPE focused on avatar and NPC creation; it extends the network with pipelines that animate virtual characters driven by AI inference, enabling real-time interactive digital embodiment.

    **Status**: current

    **Pages**: `solutions/ai`, `solutions/use-cases`
  </Accordion>

  <Accordion title="Frameworks" icon="book-open">
    **Definition**: Product by the MistServer team bridging Livepeer's transcoding infrastructure and real-world applications; provides libraries and integration tools for embedding Livepeer services.

    **Context**: Frameworks is a Livepeer ecosystem product (SPE pilot) that packages MistServer-based infrastructure components into developer-friendly libraries, lowering integration effort for new applications.

    **Status**: current

    **Pages**: `solutions/sdks`, `solutions/api`
  </Accordion>

  <Accordion title="Livepeer Studio" icon="book-open">
    **Definition**: Hosted developer platform providing APIs, SDKs, and a dashboard for adding live and on-demand video experiences to applications, backed by the Livepeer Network.

    **Context**: Livepeer Studio is the primary product entry point for developers; it abstracts network complexity behind REST APIs and a web dashboard, handling stream management, transcoding, access control, analytics, and billing.

    **Status**: current

    **Pages**: `solutions/index`, `solutions/api`
  </Accordion>

  <Accordion title="Streamplace" icon="book-open">
    **Definition**: Project building the video infrastructure layer for decentralised social platforms, focused on the AT Protocol ecosystem and enabling open video publishing.

    **Context**: Streamplace is a Livepeer ecosystem project (SPE) that uses Livepeer's transcoding and delivery infrastructure to power video for decentralised social applications built on the AT Protocol (Bluesky) stack.

    **Status**: current

    **Pages**: `solutions/ai`, `solutions/use-cases`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Video Studio Terms

<AccordionGroup>
  <Accordion title="Access Control" icon="book-open">
    **Definition**: Restricts who can view streams or assets via signed JWTs, API keys, or webhook authorisation callbacks.

    **Context**: Livepeer Studio implements access control through playback policies attached to stream or asset objects; viewers must present a valid signed JWT or pass a webhook check before the player will resolve the playback URL.

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/api`
  </Accordion>

  <Accordion title="Asset" icon="book-open">
    **Definition**: Stored video file (VOD) managed by Livepeer Studio, identified by a unique ID with associated metadata and playback URLs.

    **Context**: An asset is the Studio object created when a video file is uploaded; it stores transcoded renditions, a playback ID, and optional access-control settings, and is distinct from the live Stream object.

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/api`
  </Accordion>

  <Accordion title="Clip" icon="book-open">
    **Definition**: Short excerpt from a livestream or VOD asset defined by start and end timestamps, used for highlights or shareable segments.

    **Context**: Livepeer Studio exposes a Clip API that accepts a stream or session ID and timestamp range; the resulting clip is stored as a new asset with its own playback ID.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/clips`
  </Accordion>

  <Accordion title="Encrypted Asset" icon="book-open">
    **Definition**: Media file protected by encryption at rest so that only authorised parties holding the correct decryption key can access its content.

    **Context**: In Livepeer Studio, assets can be marked for encryption; the platform stores the file encrypted and gates decryption through the access-control system, requiring a valid playback policy before serving the key to a player.

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/vod`
  </Accordion>

  <Accordion title="Multistream" icon="book-open">
    **Definition**: Simultaneous restreaming of a single live input to multiple external destination platforms (e.g., YouTube, Twitch) in a single broadcast session.

    **Context**: Livepeer Studio's Multistream feature lets developers configure multiple target URLs and stream keys on a Stream object; the platform fans out the ingest to all targets automatically, so the broadcaster does not need to send separate streams.

    **Status**: current

    **Pages**: `solutions/multistream`, `solutions/livestreaming`
  </Accordion>

  <Accordion title="Playback ID" icon="book-open">
    **Definition**: Public identifier for retrieving playback URLs for a stream or asset without exposing the private stream key or internal asset ID.

    **Context**: Every Stream and Asset in Livepeer Studio is assigned a Playback ID at creation; clients pass this ID to the playback API or embed it in the player to resolve the correct HLS or WebRTC URL.

    **Status**: current

    **Pages**: `solutions/playback`, `solutions/api`
  </Accordion>

  <Accordion title="Playback Policy" icon="book-open">
    **Definition**: Access rules (public or JWT-required) attached to a stream or asset that determine what authentication viewers must present before playback is allowed.

    **Context**: Livepeer Studio playback policies are configured per-stream or per-asset; setting a policy to `jwt` mode requires every viewer to present a signed JWT from the application's signing key before the player can retrieve a valid playback URL.

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/api`
  </Accordion>

  <Accordion title="Project" icon="book-open">
    **Definition**: Organizational container in Livepeer Studio that groups related streams, assets, and API keys under a single namespace for multi-tenant or multi-environment management.

    **Context**: Studio Projects allow teams to isolate production and staging resources, or separate different customer accounts, each with independent API keys and usage metrics.

    **Status**: current

    **Pages**: `solutions/dashboard`, `solutions/api`
  </Accordion>

  <Accordion title="Recording" icon="book-open">
    **Definition**: Stored archive of a live stream session automatically saved as a VOD asset when recording is enabled on the stream object.

    **Context**: Livepeer Studio supports per-stream recording configuration; when enabled, each broadcast session is captured and, upon stream end, made available as a new Asset with its own playback ID.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/recording`
  </Accordion>

  <Accordion title="Room" icon="book-open">
    **Definition**: Multi-participant WebRTC video session managed by Livepeer Studio, enabling multiple users to simultaneously broadcast and receive audio and video.

    **Context**: The Studio Room API creates and manages multi-party WebRTC sessions; each Room has a unique ID and participant tokens, and Livepeer handles the signaling and media routing infrastructure.

    **Status**: current

    **Pages**: `solutions/webrtc`, `solutions/api`
  </Accordion>

  <Accordion title="Signing Key" icon="book-open">
    **Definition**: Public/private cryptographic keypair used to sign and verify JWTs that gate access to access-controlled streams and assets in Livepeer Studio.

    **Context**: Developers create Signing Keys in the Studio dashboard or via API; the private key signs viewer JWTs server-side, and Livepeer verifies signatures against the registered public key before granting playback access.

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/api`
  </Accordion>

  <Accordion title="Stream" icon="book-open">
    **Definition**: Top-level Livepeer Studio object representing a live broadcast channel, configured with a stream key, playback ID, transcoding profiles, and optional recording and multistream settings.

    **Context**: A Stream is a persistent Studio resource that persists across broadcast sessions; each time a broadcaster connects using the stream key a new Session is created under it, keeping channel configuration stable between live events.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/api`
  </Accordion>

  <Accordion title="Stream Key" icon="book-open">
    **Definition**: Secret credential used by broadcasters to authenticate and push live video to a stream's ingest endpoint; equivalent to a password for the RTMP or SRT connection.

    **Context**: Stream Keys are generated per Stream object in Livepeer Studio; they should be kept private and rotated if compromised, as anyone holding the key can broadcast to that stream channel.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/api`
  </Accordion>

  <Accordion title="Viewership" icon="book-open">
    **Definition**: Audience metrics including view counts, watch time, unique viewers, and geographic distribution tracked for streams and assets.

    **Context**: Livepeer Studio provides a Viewership API returning per-asset or per-stream engagement metrics; data is collected from the Livepeer Player or via the `reportPlayback` API endpoint in custom players.

    **Status**: current

    **Pages**: `solutions/analytics`, `solutions/api`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Video Encoding Terms

<AccordionGroup>
  <Accordion title="ABR (Adaptive Bitrate)" icon="book-open">
    **Definition**: Streaming technique that detects viewer bandwidth in real time and switches between pre-encoded bitrate levels to maintain continuous playback.

    **External**: [Adaptive bitrate streaming – Wikipedia](https://en.wikipedia.org/wiki/Adaptive_bitrate_streaming)

    **Status**: current

    **Pages**: `solutions/transcoding`, `solutions/playback`
  </Accordion>

  <Accordion title="B-frames" icon="book-open">
    **Definition**: Bidirectional predicted video frames that reference both preceding and following frames to achieve the highest compression ratio in a coded video stream.

    **External**: [Video compression picture types – Wikipedia](https://en.wikipedia.org/wiki/Video_compression_picture_types)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/livestreaming`
  </Accordion>

  <Accordion title="Bitrate" icon="book-open">
    **Definition**: Number of bits conveyed per second of video; determines the data throughput rate of an encoded stream, directly affecting quality and file size.

    **External**: [Bit rate – Wikipedia](https://en.wikipedia.org/wiki/Bit_rate)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/transcoding`
  </Accordion>

  <Accordion title="CBR (Constant Bitrate)" icon="book-open">
    **Definition**: Video encoding mode where the output data rate remains constant regardless of content complexity, trading compression efficiency for predictable file sizes.

    **External**: [Constant bitrate – Wikipedia](https://en.wikipedia.org/wiki/Constant_bitrate)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/transcoding`
  </Accordion>

  <Accordion title="CRF (Constant Rate Factor)" icon="book-open">
    **Definition**: Encoding quality control parameter that targets consistent perceptual quality by adjusting quantization per frame; scale runs 0–51 with lower values producing higher quality.

    **External**: [CRF guide – slhck.info](https://slhck.info/video/2017/02/24/crf-guide.html)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/transcoding`
  </Accordion>

  <Accordion title="Keyframe Interval" icon="book-open">
    **Definition**: Distance in frames or seconds between consecutive keyframes (I-frames); a shorter interval improves seeking accuracy while a longer interval improves compression efficiency.

    **External**: [Group of pictures – Wikipedia](https://en.wikipedia.org/wiki/Group_of_pictures)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/livestreaming`
  </Accordion>

  <Accordion title="Resolution" icon="book-open">
    **Definition**: Pixel dimensions of a video frame expressed as width × height (e.g., 1920×1080); common tiers are 360p, 480p, 720p, 1080p, and 4K.

    **External**: [Display resolution – Wikipedia](https://en.wikipedia.org/wiki/Display_resolution)

    **Status**: current

    **Pages**: `solutions/encoding`, `solutions/transcoding`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Video Processing Terms

<AccordionGroup>
  <Accordion title="Ingest" icon="book-open">
    **Definition**: Process of receiving a live video stream from a broadcaster's encoder into a media server, typically over RTMP, SRT, or WebRTC/WHIP.

    **External**: [Real-Time Messaging Protocol – Wikipedia](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/streaming`
  </Accordion>

  <Accordion title="Rendition" icon="book-open">
    **Definition**: Single encoded version of a source video at a specific resolution, bitrate, and codec configuration, produced during transcoding.

    **External**: [Video rendition – Cloudinary Glossary](https://cloudinary.com/glossary/video-rendition)

    **Status**: current

    **Pages**: `solutions/transcoding`, `solutions/encoding`
  </Accordion>

  <Accordion title="Segmentation" icon="book-open">
    **Definition**: Process of dividing a continuous video stream into short discrete chunks for HTTP-based delivery and adaptive bitrate switching between quality levels.

    **External**: [Dynamic Adaptive Streaming over HTTP – Wikipedia](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP)

    **Status**: current

    **Pages**: `solutions/transcoding`, `solutions/encoding`
  </Accordion>

  <Accordion title="Transcoding" icon="book-open">
    **Definition**: Direct digital-to-digital conversion of video from one encoding configuration to another, producing multiple adaptive renditions at different resolutions and bitrates for cross-device delivery.

    **External**: [Transcoding – Wikipedia](https://en.wikipedia.org/wiki/Transcoding)

    **Status**: current

    **Pages**: `solutions/transcoding`, `solutions/index`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Video Playback Terms

<AccordionGroup>
  <Accordion title="Latency" icon="book-open">
    **Definition**: Time delay accumulating between video capture at the source and display on the viewer's device, incurred at every stage of the encode-ingest-transcode-deliver pipeline.

    **External**: [Latency – Wikipedia](https://en.wikipedia.org/wiki/Latency_\(audio\))

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/webrtc`
  </Accordion>

  <Accordion title="Livestreaming" icon="book-open">
    **Definition**: Real-time transmission of video and audio content over the internet as it is being captured. Unlike traditional video-on-demand (VOD), where files are pre-recorded and stored, live streaming sends data in small segments to be consumed instantly.

    **External**: [Live Streaming – IBM](https://www.ibm.com/think/topics/live-streaming), [What is Live Streaming? – Cloudflare](https://www.cloudflare.com/learning/video/what-is-live-streaming/)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/index`
  </Accordion>

  <Accordion title="Low-Latency" icon="book-open">
    **Definition**: A system characteristic where the delay between an event occurring and a response being delivered is minimised; in Livepeer, sub-500ms round-trip times are targeted for real-time AI video pipelines.

    **Context**: Critical for interactive AI video applications – high latency breaks the real-time feedback loop between user input and AI-transformed output.

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/webrtc`
  </Accordion>

  <Accordion title="MP4" icon="book-open">
    **Definition**: MPEG-4 Part 14 digital multimedia container format for storing video, audio, subtitles, and still images in a single file.

    **External**: [MP4 file format – Wikipedia](https://en.wikipedia.org/wiki/MP4_file_format)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/encoding`
  </Accordion>

  <Accordion title="OBS (Open Broadcaster Software)" icon="book-open">
    **Definition**: Free, open-source application for screen capture and live streaming, supporting RTMP, RTMPS, SRT, and WebRTC output protocols.

    **External**: [OBS Studio – Wikipedia](https://en.wikipedia.org/wiki/OBS_Studio)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/guides`
  </Accordion>

  <Accordion title="Player" icon="book-open">
    **Definition**: Livepeer's embeddable video player component (lvpr.tv) with built-in support for HLS adaptive bitrate streaming and WebRTC low-latency fallback.

    **Context**: The Livepeer Player is a hosted iframe-embeddable player and a React SDK component (`@livepeer/react`) that resolves playback from a Playback ID, handles ABR switching, and supports access-controlled streams without custom player configuration.

    **Status**: current

    **Pages**: `solutions/player`, `solutions/playback`
  </Accordion>

  <Accordion title="Rebuffer Ratio" icon="book-open">
    **Definition**: Rebuffering duration divided by total playback duration, expressing the fraction of viewing time spent waiting for the player to buffer data.

    **External**: [The four elements of video performance – Mux](https://www.mux.com/blog/the-four-elements-of-video-performance)

    **Status**: current

    **Pages**: `solutions/analytics`, `solutions/playback`
  </Accordion>

  <Accordion title="Thumbnail" icon="book-open">
    **Definition**: Reduced-size preview image representing a video frame, used for recognition, navigation, and social sharing previews.

    **External**: [Thumbnail – Wikipedia](https://en.wikipedia.org/wiki/Thumbnail)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/playback`
  </Accordion>

  <Accordion title="TTFF (Time to First Frame)" icon="book-open">
    **Definition**: Duration from the moment a viewer presses play to the first video frame rendered on screen; a key quality-of-experience metric for streaming performance.

    **External**: [Time to first frame – SVTA Wiki](https://wiki.svta.org/time-to-first-frame/)

    **Status**: current

    **Pages**: `solutions/analytics`, `solutions/playback`
  </Accordion>

  <Accordion title="Video on Demand (VOD)" icon="book-open">
    **Definition**: A media delivery model where recorded video content is stored server-side and streamed to viewers on request at any time, in contrast to live streaming.

    **Also known as**: VOD, on-demand video

    **External**: [Video on demand – Wikipedia](https://en.wikipedia.org/wiki/Video_on_demand)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/index`
  </Accordion>

  <Accordion title="VOD (Video on Demand)" icon="book-open">
    **Definition**: Video delivery model allowing users to access pre-recorded content at any time of their choosing, as opposed to a scheduled live broadcast.

    **External**: [Video on demand – Wikipedia](https://en.wikipedia.org/wiki/Video_on_demand)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/index`
  </Accordion>

  <Accordion title="WebVTT (Web Video Text Tracks)" icon="book-open">
    **Definition**: W3C standard format for displaying timed text (captions, subtitles, chapters, metadata) synchronised with HTML5 video playback.

    **External**: [WebVTT – Wikipedia](https://en.wikipedia.org/wiki/WebVTT)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/subtitles`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Video Protocol Terms

<AccordionGroup>
  <Accordion title="HLS (HTTP Live Streaming)" icon="book-open">
    **Definition**: Apple's adaptive streaming protocol that encodes video into multiple quality levels, segments them, and serves them with an index playlist (`.m3u8`) over standard HTTP.

    **External**: [HTTP Live Streaming – Wikipedia](https://en.wikipedia.org/wiki/HTTP_Live_Streaming)

    **Status**: current

    **Pages**: `solutions/playback`, `solutions/livestreaming`
  </Accordion>

  <Accordion title="RTMP (Real-Time Messaging Protocol)" icon="book-open">
    **Definition**: TCP-based protocol for streaming audio, video, and data over a network, operating on port 1935; the dominant ingest protocol for live broadcasting software.

    **External**: [RTMP – Wikipedia](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/ingest`
  </Accordion>

  <Accordion title="RTMPS" icon="book-open">
    **Definition**: RTMP transported over a TLS/SSL connection, adding encryption to protect live video streams and metadata during ingest.

    **External**: [RTMP – Wikipedia](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/ingest`
  </Accordion>

  <Accordion title="SRT (Secure Reliable Transport)" icon="book-open">
    **Definition**: Open-source UDP-based streaming protocol with packet recovery, low latency, and built-in AES encryption, designed for reliable transmission over unpredictable networks.

    **External**: [Secure Reliable Transport – Wikipedia](https://en.wikipedia.org/wiki/Secure_Reliable_Transport)

    **Status**: current

    **Pages**: `solutions/livestreaming`, `solutions/ingest`
  </Accordion>

  <Accordion title="WebRTC (Web Real-Time Communication)" icon="book-open">
    **Definition**: Open-source project and W3C/IETF standard providing browsers and mobile apps with peer-to-peer real-time audio, video, and data exchange over UDP.

    **External**: [WebRTC – Wikipedia](https://en.wikipedia.org/wiki/WebRTC)

    **Status**: current

    **Pages**: `solutions/webrtc`, `solutions/livestreaming`
  </Accordion>

  <Accordion title="WHEP (WebRTC-HTTP Egress Protocol)" icon="book-open">
    **Definition**: IETF draft protocol enabling viewers to watch content from streaming services via WebRTC using a standardised SDP offer/answer HTTP exchange.

    **External**: [WHEP draft – IETF](https://datatracker.ietf.org/doc/draft-ietf-wish-whep/)

    **Status**: current

    **Pages**: `solutions/webrtc`, `solutions/playback`
  </Accordion>

  <Accordion title="WHIP (WebRTC-HTTP Ingestion Protocol)" icon="book-open">
    **Definition**: RFC 9725 standard protocol for WebRTC-based live video ingestion via a simple HTTP SDP offer/answer exchange, enabling browser-native broadcasting without plugins.

    **External**: [WHIP – RFC 9725](https://www.rfc-editor.org/rfc/rfc9725.html)

    **Status**: current

    **Pages**: `solutions/webrtc`, `solutions/ingest`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## AI Terms

<AccordionGroup>
  <Accordion title="Avatar" icon="book-open">
    **Definition**: Graphical representation of a user or AI entity, ranging from 2D images to fully animated 3D digital characters driven by AI models.

    **External**: [Avatar (computing) – Wikipedia](https://en.wikipedia.org/wiki/Avatar_\(computing\))

    **Status**: current

    **Pages**: `solutions/ai`, `solutions/use-cases`
  </Accordion>

  <Accordion title="StreamDiffusion" icon="book-open">
    **Definition**: Optimised real-time diffusion pipeline using stream batching and stochastic similarity filtering to apply generative image transformations to live video at interactive frame rates.

    **External**: [StreamDiffusion – GitHub](https://github.com/cumulo-autumn/StreamDiffusion)

    **Status**: current

    **Pages**: `solutions/ai`, `solutions/pipelines`
  </Accordion>

  <Accordion title="Realtime AI Video" icon="book-open">
    **Definition**: Instantaneous generation, manipulation, or analysis of video streams as they are being captured, typically occurring with milliseconds to fractions of a second of latency. It differs from traditional AI video - which often involves "fast generation" (rendering a clip in minutes) - by providing interactive, live, and reactive video output that responds directly to input.

    **Status**: current

    **Pages**: `solutions/daydream`, `solutions/embody`
  </Accordion>

  <Accordion title="World Model" icon="book-open">
    **Definition**: Neural networks that understand the dynamics of the real world, including physics and spatial properties. They use input data (text, image, video, movement) to generate videos that simulate realistic physical environments. Physical AI developers use world models to generate custom synthetic data or downstream AI models for training robots and autonomous vehicles.

    **External**: [World Models – NVIDIA Glossary](https://www.nvidia.com/en-us/glossary/world-models/)

    **Status**: current

    **Pages**: `solutions/daydream`, `solutions/ai`, `solutions/use-cases`
  </Accordion>

  <Accordion title="Real-time Interactive 3D Avatar" icon="book-open">
    **Definition**: A digital character or persona that can instantly respond to live user input - such as voice, text, or motion - while being rendered and animated dynamically in a three-dimensional space.

    **External**: [Digital Humans – NVIDIA](https://www.nvidia.com/en-au/use-cases/digital-humans/)

    **Status**: current

    **Pages**: `solutions/embody`, `solutions/ai`
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Technical Terms

<AccordionGroup>
  <Accordion title="AES-CBC" icon="book-open">
    **Definition**: AES (Advanced Encryption Standard) in Cipher Block Chaining mode – symmetric encryption where each plaintext block is XOR'd with the previous ciphertext block before encryption.

    **External**: [Block cipher mode of operation – Wikipedia](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation)

    **Status**: current

    **Pages**: `solutions/access-control`
  </Accordion>

  <Accordion title="API Key" icon="book-open">
    **Definition**: Secret unique identifier sent with API requests to authenticate the caller and authorise access to platform resources.

    **External**: [API key – Wikipedia](https://en.wikipedia.org/wiki/API_key)

    **Status**: current

    **Pages**: `solutions/api`, `solutions/quickstart`
  </Accordion>

  <Accordion title="AT Protocol" icon="book-open">
    **Definition**: Authenticated Transfer Protocol – open decentralised social networking standard developed by Bluesky, enabling federated identity and data portability.

    **External**: [AT Protocol – Wikipedia](https://en.wikipedia.org/wiki/AT_Protocol)

    **Status**: current

    **Pages**: `solutions/integrations`
  </Accordion>

  <Accordion title="Bearer Token" icon="book-open">
    **Definition**: Access token carried in an HTTP Authorisation header, used by API clients to authenticate requests without re-sending credentials.

    **External**: [Authorisation header – MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Authorization)

    **Status**: current

    **Pages**: `solutions/api`
  </Accordion>

  <Accordion title="C2PA" icon="book-open">
    **Definition**: Coalition for Content Provenance and Authenticity – open standard producing tamper-evident manifests that record the origin and edit history of media files.

    **External**: [C2PA specification](https://c2pa.org/)

    **Status**: current

    **Pages**: `solutions/provenance`, `solutions/ai`
  </Accordion>

  <Accordion title="CORS (Cross-Origin Resource Sharing)" icon="book-open">
    **Definition**: HTTP mechanism that lets servers specify which origins outside their own domain are allowed to make browser requests to their resources.

    **External**: [CORS – MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS)

    **Status**: current

    **Pages**: `solutions/api`, `solutions/player`
  </Accordion>

  <Accordion title="Encrypted Asset" icon="book-open">
    **Definition**: Media file protected by encryption at rest so that only authorised parties holding the correct decryption key can access its content.

    **Context**: In Livepeer Studio, assets can be marked for encryption; the platform stores the file encrypted and gates decryption through the access-control system, requiring a valid playback policy before serving the key to a player.

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/vod`
  </Accordion>

  <Accordion title="Endpoint" icon="book-open">
    **Definition**: Specific URL path at which an API receives requests and returns responses for a defined operation.

    **External**: [Web API – Wikipedia](https://en.wikipedia.org/wiki/Web_API)

    **Status**: current

    **Pages**: `solutions/api`
  </Accordion>

  <Accordion title="Fediverse" icon="book-open">
    **Definition**: Federation of social networking platforms that communicate via open protocols such as ActivityPub, enabling cross-platform interaction without centralised control.

    **External**: [Fediverse – Wikipedia](https://en.wikipedia.org/wiki/Fediverse)

    **Status**: current

    **Pages**: `solutions/integrations`
  </Accordion>

  <Accordion title="JSON (JavaScript Object Notation)" icon="book-open">
    **Definition**: Lightweight, human-readable data interchange format using key-value pairs and ordered lists, widely used for API request and response bodies.

    **External**: [JSON – Wikipedia](https://en.wikipedia.org/wiki/JSON)

    **Status**: current

    **Pages**: `solutions/api`
  </Accordion>

  <Accordion title="JWT (JSON Web Token)" icon="book-open">
    **Definition**: Compact, URL-safe token format carrying signed claims used for stateless authentication; in video access control, a signed JWT proves viewer entitlement without a server round-trip for every request.

    **External**: [JSON Web Token – jwt.io](https://jwt.io/introduction)

    **Status**: current

    **Pages**: `solutions/access-control`, `solutions/api`
  </Accordion>

  <Accordion title="MistServer" icon="book-open">
    **Definition**: Open-source media server providing live video ingest, transcoding, and delivery capabilities, used within Livepeer's infrastructure to handle protocol translation and stream routing.

    **External**: [MistServer](https://mistserver.org/)

    **Status**: current

    **Pages**: `solutions/architecture`
  </Accordion>

  <Accordion title="Provenance" icon="book-open">
    **Definition**: Verified chain of custody and edit history of a digital asset, confirming its origin and tracking modifications over time.

    **External**: [C2PA specification](https://c2pa.org/)

    **Status**: current

    **Pages**: `solutions/provenance`, `solutions/ai`
  </Accordion>

  <Accordion title="REST (Representational State Transfer)" icon="book-open">
    **Definition**: Architectural style for distributed hypermedia systems using standard HTTP methods (GET, POST, PUT, DELETE) for stateless resource interaction.

    **External**: [REST – Wikipedia](https://en.wikipedia.org/wiki/REST)

    **Status**: current

    **Pages**: `solutions/api`
  </Accordion>

  <Accordion title="SDK (Software Development Kit)" icon="book-open">
    **Definition**: Collection of tools, libraries, and documentation enabling developers to build applications that integrate with a platform's APIs.

    **External**: [Software development kit – Wikipedia](https://en.wikipedia.org/wiki/Software_development_kit)

    **Status**: current

    **Pages**: `solutions/sdks`, `solutions/api`
  </Accordion>

  <Accordion title="TUS Upload" icon="book-open">
    **Definition**: Resumable file upload protocol over HTTP that allows interrupted large file uploads to resume from where they stopped rather than restarting from the beginning.

    **External**: [TUS protocol](https://tus.io/)

    **Status**: current

    **Pages**: `solutions/vod`, `solutions/api`
  </Accordion>

  <Accordion title="Webhook" icon="book-open">
    **Definition**: HTTP callback mechanism where a server sends an automated POST request to a configured URL when a specified platform event occurs.

    **External**: [Webhook – Wikipedia](https://en.wikipedia.org/wiki/Webhook)

    **Status**: current

    **Pages**: `solutions/webhooks`, `solutions/api`
  </Accordion>
</AccordionGroup>

<CustomDivider />

<CardGroup cols={3}>
  <Card title="Solutions Overview" icon="house" href="/v2/solutions">
    Entry point to Livepeer's products, APIs, and use cases
  </Card>

  <Card title="Full Glossary" icon="book" href="/v2/resources/glossary">
    All terms across every Livepeer tab
  </Card>

  <Card title="Get Started" icon="rocket" href="/v2/home/get-started">
    Build your first Livepeer integration
  </Card>
</CardGroup>
