Video Output - {video?.name || "No Video Selected"} Configure video output: local recording or remote broadcast to rooms
{#if error} Connection Error {error} {/if}
Current Video Output
{#if video?.hasOutput} {video.output.type === "recording" ? "Recording" : "Remote Broadcast"} {:else} No Output Active {/if}
{#if video?.hasOutput}
{#if video.output.roomId} Broadcasting to Room: {video.output.roomId} {:else} Recording to local storage {/if}
{/if}
{#if video?.hasOutput} Current Output

{video.output.type === "recording" ? "Local Recording" : "Remote Broadcast"}

{#if video.output.roomId}

Room: {video.output.roomId}

{/if} {#if video.output.stream}

Status: Active • {video.output.stream.getVideoTracks().length} video tracks

{/if}
{/if} Local Recording Record video directly to your device for later use {#if video?.hasOutput && video.output.type === "recording"}

Recording Active

Saving to local device

{:else} {#if video?.hasOutput}

Stop current output to start recording

{/if} {/if}
Remote Control Broadcast video stream to remote systems and users
{#if video?.hasOutput && video.output.type !== "recording"}

Broadcasting to Room

Video stream active

{:else}

Create New Room

Create a room to broadcast your video

Join Existing Room: {videoManager.rooms.length} room{videoManager.rooms.length !== 1 ? "s" : ""} available
{#if videoManager.rooms.length === 0}
{videoManager.roomsLoading ? "Loading rooms..." : "No rooms available. Create one to get started."}
{:else} {#each videoManager.rooms as room (room.id)}

{room.id}

{room.participants?.producer ? "🔴 Has Output" : "🟢 Available"} 👥 {room.participants?.consumers?.length || 0} inputs
{#if !room.participants?.producer} {:else} {/if}
{/each} {/if}
{#if video?.hasOutput}

Stop current output to join a room

{/if} {/if}