File size: 5,800 Bytes
c947d78 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
<!DOCTYPE html>
<!--
_____ .__ ____ ___.__ .___
/ _ \ |__| \ \ / |__| __| _/____ ____
/ /_\ \| | \ Y /| |/ __ _/ __ \/ _ \
/ | | | \ / | / /_/ \ ___( <_> )
\____|__ |__| \___/ |__\____ |\___ \____/
\/ \/ \/
created by rUv
-->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Stream Capture and Analysis</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<style>
body {
background-color: #f8f9fa;
}
.container {
max-width: 720px;
margin-top: 20px;
}
#video {
width: 100%;
height: auto;
background-color: #ddd;
margin-bottom: 20px;
}
.button-container {
display: flex;
flex-direction: column;
align-items: center;
}
.btn-group-toggle {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
.btn-group-toggle .btn {
width: auto;
margin: 0 10px;
}
.btn-group {
margin-bottom: 10px;
}
.btn-secondary.active {
background-color: #6c757d;
border-color: #6c757d;
color: white;
}
.settings-panel {
display: none;
margin-bottom: 20px;
}
.settings-panel .nav-tabs {
margin-bottom: 10px;
}
#formattedMarkdown {
background-color: #fff;
border: 1px solid #ddd;
padding: 10px;
margin-top: 20px;
border-radius: 5px;
max-height: 200px;
overflow-y: auto;
}
</style>
</head>
<body>
<div class="container text-center">
<h2 class="my-4">GPT-4o Media Stream Capture & Analysis</h2>
<p class="mb-4">A web app to capture and analyze media streams from your webcam, desktop, or specific apps. Easily switch sources and capture frames at intervals. Use AI for insightful frame analysis and summaries.</p>
<video id="video" class="mb-4" autoplay></video>
<div class="button-container">
<div class="btn-group btn-group-toggle mb-4" data-toggle="buttons">
<label class="btn btn-secondary">
<input type="radio" name="options" id="shareWebcam" autocomplete="off"> Share Webcam
</label>
<label class="btn btn-secondary">
<input type="radio" name="options" id="shareScreen" autocomplete="off"> Share Screen
</label>
<label class="btn btn-secondary">
<input type="radio" name="options" id="shareApplication" autocomplete="off"> Share Application
</label>
</div>
<div class="btn-group mb-4">
<button id="startCapture" class="btn btn-primary">📸 Start Capture</button>
<button id="stopCapture" class="btn btn-danger">🛑 Stop Capture</button>
<button id="toggleSettings" class="btn btn-info">⚙️ Settings</button>
</div>
</div>
<div class="settings-panel card card-body">
<ul class="nav nav-tabs" id="settingsTabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="prompt-tab" data-toggle="tab" href="#prompt" role="tab" aria-controls="prompt" aria-selected="true">Prompt</a>
</li>
<li class="nav-item">
<a class="nav-link" id="settings-tab" data-toggle="tab" href="#settings" role="tab" aria-controls="settings" aria-selected="false">Settings</a>
</li>
<li class="nav-item">
<a class="nav-link" id="api-tab" data-toggle="tab" href="#api" role="tab" aria-controls="api" aria-selected="false">API Config</a>
</li>
</ul>
<div class="tab-content" id="settingsTabsContent">
<div class="tab-pane fade show active" id="prompt" role="tabpanel" aria-labelledby="prompt-tab">
<textarea id="customPrompt" class="form-control" rows="3" placeholder="Enter custom prompt here...">Analyze this frame</textarea>
</div>
<div class="tab-pane fade" id="settings" role="tabpanel" aria-labelledby="settings-tab">
<input type="number" id="refreshRate" class="form-control" placeholder="Refresh rate in seconds" value="15">
</div>
<div class="tab-pane fade" id="api" role="tabpanel" aria-labelledby="api-tab">
<input type="text" id="apiKey" class="form-control" placeholder="OpenAI API Key" value="">
</div>
<button id="saveSettings" class="btn btn-success mt-3">Save Settings</button>
</div>
</div>
<div id="formattedMarkdown" class="text-left"></div>
</div>
<div class="container text-center">
created by rUv
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="/static/script.js"></script>
</body>
</html> |