25
25
</ div >
26
26
< div id ="navbar " class ="navbar-collapse collapse ">
27
27
< div class ="navbar-form navbar-right " role ="form ">
28
+ < a class ="btn btn-default btn-video-export "> Export video...</ a >
28
29
< span class ="btn btn-primary btn-file "> Open log file/video < input type ="file " class ="file-open " multiple > </ span >
29
30
</ div >
30
31
</ div >
@@ -115,9 +116,11 @@ <h1>Welcome to Blackbox Explorer!</h1>
115
116
to convert your log file into a CSV file for analysis.
116
117
</ p >
117
118
< p >
118
- If you want to turn your log into a video, you can use the < a href ="https://github.com/cleanflight/blackbox-tools "> blackbox_render tool</ a >
119
- tool to turn your log into a series of PNG files. Alternatively, use a computer
120
- screen recording tool to record the playback of this log viewer.
119
+ If you want to share your log as a video, you can use the "export video" button at the
120
+ top to render a WebM video, or use the commandline
121
+ < a href ="https://github.com/cleanflight/blackbox-tools "> blackbox_render tool</ a >
122
+ tool to turn your log into a series of PNG files, or use a
123
+ screen recording tool to record the playback of this log viewer.
121
124
</ p >
122
125
</ div >
123
126
</ div >
@@ -137,12 +140,14 @@ <h3 class="log-filename"></h3>
137
140
</ div >
138
141
< div class ="form-group log-device-uid-header ">
139
142
< label class ="col-sm-3 control-label "> Device UID</ label >
140
- < div class ="col-sm-9 log-device-uid form-control-static ">
143
+ < div class ="col-sm-9 ">
144
+ < p class ="log-device-uid form-control-static "> </ p >
141
145
</ div >
142
146
</ div >
143
147
< div class ="form-group ">
144
148
< label class ="col-sm-3 control-label "> Battery</ label >
145
- < div class ="col-sm-9 log-cells form-control-static ">
149
+ < div class ="col-sm-9 ">
150
+ < p class ="log-cells form-control-static "> </ p >
146
151
</ div >
147
152
</ div >
148
153
</ div >
@@ -278,17 +283,120 @@ <h4 class="modal-title">Configure graphs</h4>
278
283
< button type ="button " class ="btn btn-primary graph-configuration-dialog-save " data-dismiss ="modal "> Save changes</ button >
279
284
</ div >
280
285
</ div >
281
- <!-- /.modal-content -->
282
286
</ div >
283
- <!-- /.modal-dialog -->
284
287
</ div >
285
- <!-- /.modal -->
288
+
289
+ < div class ="modal fade " id ="dlgVideoExport ">
290
+ < div class ="modal-dialog ">
291
+ < div class ="modal-content ">
292
+ < div class ="modal-header ">
293
+ < h4 class ="modal-title "> Export video</ h4 >
294
+ </ div >
295
+ < div class ="modal-body ">
296
+ < div class ="pane-video-settings form-horizontal ">
297
+ < div class ="form-group ">
298
+ < label class ="col-sm-3 control-label "> Video duration</ label >
299
+ < div class ="col-sm-9 ">
300
+ < p class ="form-control-static video-duration "> </ p >
301
+ < p > You can use the I (In) and O (Out) keys while
302
+ viewing the log to mark the start and end points of the video</ p >
303
+ </ div >
304
+ </ div >
305
+ < div class ="form-group ">
306
+ < label class ="col-sm-3 control-label "> Framerate</ label >
307
+ < div class ="col-sm-9 ">
308
+ < select class ="form-control video-frame-rate ">
309
+ < option value ="15 "> 15 fps</ option >
310
+ < option value ="30 "> 30 fps</ option >
311
+ < option value ="60 "> 60 fps</ option >
312
+ < option value ="120 "> 120 fps</ option >
313
+ < option value ="240 "> 240 fps</ option >
314
+ </ select >
315
+ </ div >
316
+ </ div >
317
+ < div class ="form-group ">
318
+ < label class ="col-sm-3 control-label "> Resolution</ label >
319
+ < div class ="col-sm-9 ">
320
+ < select class ="form-control video-resolution ">
321
+ < option value ="854x480 "> 480p</ option >
322
+ < option value ="1280x720 "> 720p</ option >
323
+ < option value ="1920x1080 "> 1080p</ option >
324
+ </ select >
325
+ </ div >
326
+ </ div >
327
+ < div class ="form-group video-dim-section ">
328
+ < label class ="col-sm-3 control-label "> Dim flight video</ label >
329
+ < div class ="col-sm-9 ">
330
+ < select class ="form-control video-dim ">
331
+ < option value ="0.0 "> 0%</ option >
332
+ < option value ="0.2 "> 20%</ option >
333
+ < option value ="0.4 "> 40%</ option >
334
+ < option value ="0.5 "> 50%</ option >
335
+ < option value ="0.6 "> 60%</ option >
336
+ < option value ="0.8 "> 80%</ option >
337
+ < option value ="1.0 "> 100%</ option >
338
+ </ select >
339
+ </ div >
340
+ </ div >
341
+ < div class ="form-group ">
342
+ < label class ="col-sm-3 control-label "> Video format</ label >
343
+ < div class ="col-sm-9 ">
344
+ < p class ="form-control-static video-format "> WebM</ p >
345
+ </ div >
346
+ </ div >
347
+ < div class ="form-group ">
348
+ < label class ="col-sm-3 control-label "> Audio format</ label >
349
+ < div class ="col-sm-9 ">
350
+ < p class ="form-control-static audio-format "> Not supported yet (no audio will be included)</ p >
351
+ </ div >
352
+ </ div >
353
+ </ div >
354
+ < div class ="pane-video-progress ">
355
+ < progress max ="100 " value ="0 "> </ progress >
356
+
357
+ < div class ="form-horizontal ">
358
+ < div class ="form-group ">
359
+ < label class ="col-sm-3 control-label "> Rendered frames</ label >
360
+ < div class ="col-sm-9 ">
361
+ < p class ="form-control-static video-export-rendered-frames "> </ p >
362
+ </ div >
363
+ </ div >
364
+ < div class ="form-group ">
365
+ < label class ="col-sm-3 control-label "> File size</ label >
366
+ < div class ="col-sm-9 ">
367
+ < p class ="form-control-static video-export-size "> </ p >
368
+ < div class ="alert alert-danger " role ="alert "> You must install this tool as a Chrome App in order to export videos larger than 500MB</ div >
369
+ </ div >
370
+ </ div >
371
+ < div class ="form-group ">
372
+ < label class ="col-sm-3 control-label "> Remaining time</ label >
373
+ < div class ="col-sm-9 ">
374
+ < p class ="form-control-static video-export-remaining "> </ p >
375
+ </ div >
376
+ </ div >
377
+ </ div >
378
+ </ div >
379
+ < div class ="pane-video-complete ">
380
+ < p class ="video-export-result "> </ p >
381
+ </ div >
382
+ </ div >
383
+ < div class ="modal-footer ">
384
+ < button type ="button " class ="btn btn-default video-export-dialog-cancel " data-dismiss ="modal "> Cancel</ button >
385
+ < button type ="button " class ="btn btn-default video-export-dialog-close " data-dismiss ="modal "> Close</ button >
386
+ < button type ="button " class ="btn btn-primary video-export-dialog-start "> Begin export</ button >
387
+ </ div >
388
+ </ div >
389
+ </ div >
390
+ </ div >
286
391
287
392
< script src ="js/vendor/jquery-1.11.3.min.js "> </ script >
288
393
< script src ="js/vendor/bootstrap.min.js "> </ script >
289
394
< script src ="js/vendor/jquery.ba-throttle-debounce.js "> </ script >
290
395
< script src ="js/vendor/three.min.js "> </ script >
291
396
< script src ="js/vendor/jquery.nouislider.all.min.js "> </ script >
397
+ < script src ="js/vendor/FileSaver.js "> </ script >
398
+ < script src ="js/vendor/webm-writer-0.1.0.js "> </ script >
399
+ < script src ="js/pref_storage.js "> </ script >
292
400
< script src ="js/tools.js "> </ script >
293
401
< script src ="js/cache.js "> </ script >
294
402
< script src ="js/expo.js "> </ script >
@@ -307,6 +415,9 @@ <h4 class="modal-title">Configure graphs</h4>
307
415
< script src ="js/graph_legend.js "> </ script >
308
416
< script src ="js/graph_config_dialog.js "> </ script >
309
417
< script src ="js/seekbar.js "> </ script >
418
+ < script src ="js/video_export_dialog.js "> </ script >
419
+ < script src ="js/flightlog_video_renderer.js "> </ script >
420
+ < script src ="js/graph_config.js "> </ script >
310
421
< script src ="js/main.js "> </ script >
311
422
</ body >
312
423
</ html >
0 commit comments