Video Input - {video?.name || "No Video Selected"} Configure video input source: local camera for recording or remote streams from rooms
{#if error} Connection Error {error} {/if}
Current Video Input
{#if video?.hasInput} {video.input.type === "local-camera" ? "Local Camera" : "Remote Stream"} {:else} No Input Connected {/if}
{#if video?.hasInput}
{#if video.input.roomId} Room: {video.input.roomId} {:else} Source: Local Device Camera {/if}
{/if}
{#if video?.hasInput} Current Input

{video.input.type === "local-camera" ? "Local Camera" : "Remote Stream"}

{#if video.input.roomId}

Room: {video.input.roomId}

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

Video: {video.input.stream.getVideoTracks().length} tracks

Audio: {video.input.stream.getAudioTracks().length} tracks

{/if}
{/if} Local Camera Use your device camera for direct video capture and recording {#if video?.hasInput && video.input.type === "local-camera"}

Camera Connected

Local device camera active

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

Disconnect current input to connect camera

{/if} {/if}
Remote Collaboration (Rooms) Receive video streams from remote cameras or AI systems
{#if video?.hasInput && video.input.type !== "local-camera"}

Room Connected

Receiving remote video stream

{:else}

Create New Room

Create a room to receive video from others

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.participants?.producer ? "📹 Has Output" : "📭 No Output"} 👥 {room.participants?.consumers?.length || 0} inputs
{#if room.participants?.producer} {:else} {/if}
{/each} {/if}
{#if video?.hasInput}

Disconnect current input to join a room

{/if} {/if}
Video Input Sources Camera: Local device camera • Remote: Video streams from rooms • Only one active at a time