forked from hummypkg/webif
62 lines
1.3 KiB
Tcl
Executable File
62 lines
1.3 KiB
Tcl
Executable File
#!/mod/bin/jimsh
|
|
|
|
package require cgi
|
|
source /mod/webif/lib/setup
|
|
require ts.class system.class settings.class
|
|
|
|
jqplugin progressbar
|
|
jscss audio.js
|
|
header
|
|
|
|
set s [settings]
|
|
set slow [$s audiomp3]
|
|
set type [$s audiomp3descr $slow]
|
|
|
|
set rfile [cgi_get file]
|
|
set ts [ts fetch $rfile]
|
|
set dir [file dirname $rfile]
|
|
set len [$ts duration 1]
|
|
|
|
# guess output size based on video file size
|
|
set asize [$ts size]
|
|
# using slight overestimates of typical audio:video size ratio
|
|
if {[$ts get mpeglevel] eq 4} {
|
|
if {$slow} { # aac-> mp3
|
|
set asize [expr $asize*0.12]
|
|
} else { # aac-> loas
|
|
set asize [expr $asize*0.09]
|
|
}
|
|
} else { # mp2 -> mp[23] (similar)
|
|
set asize [expr $asize*0.07]
|
|
}
|
|
|
|
puts "
|
|
|
|
<fieldset class=cleft>
|
|
<legend>Audio Extraction</legend>
|
|
|
|
<table class=keyval cellpadding=5>
|
|
<tr><th>File:</th><td>$rfile</td></tr>
|
|
<tr><th>Length:</th><td>[clock format $len -format "%T"]</td></tr>
|
|
</table>
|
|
|
|
<span class=hidden id=params
|
|
dir=\"[cgi_quote_url $dir]\"
|
|
rfile=\"[cgi_quote_url $rfile]\"
|
|
asize=\"[cgi_quote_url $asize]\"
|
|
></span>
|
|
|
|
<div id=audiodiv style=\"padding: 1em\">
|
|
<button id=audioit>Perform audio extraction - $type</button>
|
|
</div>
|
|
<button id=back>Back to media list</button>
|
|
|
|
<div id=progressdiv class=hidden>
|
|
Extracting audio: <div id=progressbar></div>
|
|
</div>
|
|
|
|
<div id=output class=pre style=\"margin-top: 10px\"></div>
|
|
</fieldset>
|
|
|
|
"
|