Skip to content

Commit 9d2cc85

Browse files
save file
1 parent 82720c8 commit 9d2cc85

File tree

1 file changed

+86
-6
lines changed

1 file changed

+86
-6
lines changed

utils/video/video-thumbnail-generator/video-thumbnail-generator.html

Lines changed: 86 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@
164164
#video-root>div
165165
{display:flex;flex-direction:column;gap:10px}
166166

167+
#results
168+
{display:flex;gap:20px}
169+
.item
170+
{display:flex;flex-direction:column;gap:10px}
171+
167172
#output
168173
{border:1px solid lightgray;padding:10px;border-radius:10px;white-space:pre-wrap;overflow:auto;font-size:16px;font-family:monospace;flex:1}
169174

@@ -207,14 +212,15 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
207212
</span>
208213
<span id=height>
209214
height
210-
<input value=50>
215+
<input value=100>
211216
</span>
212217
</span>
213218
<span id=secs>
214219
secs
215220
<input value=03>
216221
</span>
217222
<input value=generate type=button>
223+
<input value=auto type=button>
218224
</div>
219225

220226
<div id=video-root>
@@ -229,8 +235,14 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
229235
</div>
230236
</div>
231237
</div>
232-
<div>
233-
<img id=thumbnail>
238+
<div id=results>
239+
<div class=item style='display:none'>
240+
<img class=thumbnail>
241+
<div>
242+
<div class=dims></div>
243+
<div class=size></div>
244+
</div>
245+
</div>
234246
</div>
235247

236248
<pre id=output></pre>
@@ -248,7 +260,8 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
248260
var ffmpeg_debug = false;
249261
var cur = {};
250262
var video;
251-
var img;
263+
var results;
264+
var item;
252265

253266

254267
var btn = {};
@@ -263,11 +276,15 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
263276

264277

265278
$('[value=generate]').onclick = btn.generate;
279+
$('[value=auto]').onclick = btn.auto;
266280

267281
video = $('video');
268282
video.onloadedmetadata = onloadedmetadata;
269283

270-
img = $('#thumbnail');
284+
results = $('#results');
285+
item = $('.item');
286+
item.remove();
287+
item.style.display = '';
271288

272289
output = $('#output');
273290

@@ -308,6 +325,7 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
308325
return;
309326
}
310327

328+
311329
var w = $('#width [value]').value;
312330
w = Number(w);
313331
if(isNaN(w)){
@@ -340,6 +358,7 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
340358

341359
cur.status = true;
342360

361+
343362
if($('#png [type]').checked){
344363
gen.png(w,h,secs);
345364
}
@@ -351,6 +370,56 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
351370
}//generate
352371

353372

373+
btn.auto = function(){
374+
375+
if(cur.status){
376+
log.red('already running');
377+
return;
378+
}
379+
380+
if(!cur.file){
381+
log.red('no file selected');
382+
return;
383+
}
384+
385+
var w = -1;
386+
var h = 25;
387+
var secs = 0;
388+
389+
for(secs=0;secs<=5;secs++){
390+
391+
w = -1;
392+
for(h=25;h<=100;h+=25){
393+
394+
fn();
395+
396+
}//for
397+
398+
h = -1;
399+
for(w=25;w<=100;w+=25){
400+
401+
fn();
402+
403+
}//for
404+
405+
}//for
406+
407+
408+
function fn(){
409+
410+
if($('#png [type]').checked){
411+
gen.png(w,h,secs);
412+
}
413+
414+
if($('#jpg [type]').checked){
415+
gen.jpg(w,h,secs);
416+
}
417+
418+
}//gen
419+
420+
}//auto
421+
422+
354423
gen.png = async function(w,h,secs){
355424

356425
var fn = cur.file.filename;
@@ -373,7 +442,7 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
373442
}//png
374443

375444

376-
gen.jpg = async function(){
445+
gen.jpg = async function(w,h,secs){
377446

378447
var fn = cur.file.filename;
379448
var fn2 = fn.split('.')[0];
@@ -399,7 +468,18 @@ <h1 slot=seo-hdr class=visually-hidden>video thumbnail generator</h1>
399468

400469
cur.status = false;
401470
var url = window.URL.createObjectURL(blob);
471+
var nitem = item.cloneNode(true);
472+
var img = $(nitem,'img');
473+
img.onload = onload;
402474
img.src = url;
475+
$(nitem,'.size').textContent = hs(blob.size);
476+
results.append(nitem);
477+
478+
function onload(){
479+
480+
$(nitem,'.dims').textContent = img.naturalWidth+' x '+img.naturalHeight;
481+
482+
}//onload
403483

404484
}//complete
405485

0 commit comments

Comments
 (0)