#!/usr/bin/env php
<?php
##==========================================================================
##
## Copyright (c) On2 Technologies Inc. All Rights Reserved.
##
##--------------------------------------------------------------------------
##
## File: $Workfile: flix2_sample.php$
## $Revision: 71$
##
## Last Update: $DateUTC: 2007-09-26 15:56:45Z$
##
##--------------------------------------------------------------------------
##
## add extension_dir/.. to 'include_path' as this is often missing from php.ini
set_include_path(get_include_path().PATH_SEPARATOR.ini_get("extension_dir")."/..");
$incret = include ('flixengine2.php');
$prefix = "/var/www/cgi-bin/";
$indir = $prefix."flixmedia/in/";
$overlaydir = $prefix."flixmedia/overlay/";
## Alias Flix constants as variables for easy substitution in HTML strings.
## Note: This is not a list of all possible constants. It only contains
## those used in this script.
$flix_on2true = on2true;
$flix_on2false = on2false;
$flix_MAX_KEYFRAMES = MAX_KEYFRAMES;
$flix_FIXED_KEYFRAMES = FIXED_KEYFRAMES;
$flix_VBR_2PASSControl = VBR_2PASSControl;
$flix_CBR_2PASSControl = CBR_2PASSControl;
$flix_VBR_1PASSControl = VBR_1PASSControl;
$flix_CBR_1PASSControl = CBR_1PASSControl;
$flix_COMPRESSMODE_GOOD = COMPRESSMODE_GOOD;
$flix_COMPRESSMODE_BEST = COMPRESSMODE_BEST;
$flix_Bitrate8kbps = Bitrate8kbps;
$flix_Bitrate16kbps = Bitrate16kbps;
$flix_Bitrate24kbps = Bitrate24kbps;
$flix_Bitrate32kbps = Bitrate32kbps;
$flix_Bitrate40kbps = Bitrate40kbps;
$flix_Bitrate48kbps = Bitrate48kbps;
$flix_Bitrate56kbps = Bitrate56kbps;
$flix_Bitrate64kbps = Bitrate64kbps;
$flix_Bitrate80kbps = Bitrate80kbps;
$flix_Bitrate96kbps = Bitrate96kbps;
$flix_Bitrate112kbps = Bitrate112kbps;
$flix_Bitrate128kbps = Bitrate128kbps;
$flix_Bitrate144kbps = Bitrate144kbps;
$flix_Bitrate160kbps = Bitrate160kbps;
$flix_Bitrate192kbps = Bitrate192kbps;
$flix_Bitrate224kbps = Bitrate224kbps;
$flix_Bitrate256kbps = Bitrate256kbps;
$flix_Bitrate320kbps = Bitrate320kbps;
$flix_Hertz44100 = Hertz44100;
$flix_Hertz22050 = Hertz22050;
$flix_Hertz11025 = Hertz11025;
$flix_EmbeddedUrlIsGetUrl = EmbeddedUrlIsGetUrl;
$flix_EmbeddedUrlIsLoadMovie = EmbeddedUrlIsLoadMovie;
$flix_SwfPreloaderNone = SwfPreloaderNone;
$flix_SwfFixedPreloader = SwfFixedPreloader;
$flix_SwfAdaptivePreloader = SwfAdaptivePreloader;
$flix_SwfOnMovieEndNothing = SwfOnMovieEndNothing;
$flix_SwfOnMovieEndSTOP = SwfOnMovieEndSTOP;
$flix_SwfOnMovieEndLoop = SwfOnMovieEndLoop;
$flix_SwfOnMovieEndUnload = SwfOnMovieEndUnload;
$flix_SwfOnMovieEndLoadMovie = SwfOnMovieEndLoadMovie;
$flix_SwfOnMovieStartAutomatically = SwfOnMovieStartAutomatically;
$flix_SwfOnMovieStartOnClick = SwfOnMovieStartOnClick;
$flix_SwfOnMovieStartWait = SwfOnMovieStartWait;
$flix_SwfOnMovieStartEmbedSTOP = SwfOnMovieStartEmbedSTOP;
$flix_FE2_OVERLAY_POS_MODE_TOPLEFT = FE2_OVERLAY_POS_MODE_TOPLEFT;
$flix_FE2_OVERLAY_POS_MODE_BOTLEFT = FE2_OVERLAY_POS_MODE_BOTLEFT;
$flix_FE2_OVERLAY_POS_MODE_CENTER = FE2_OVERLAY_POS_MODE_CENTER;
$flix_FE2_OVERLAY_POS_MODE_TOPRIGHT = FE2_OVERLAY_POS_MODE_TOPRIGHT;
$flix_FE2_OVERLAY_POS_MODE_BOTRIGHT = FE2_OVERLAY_POS_MODE_BOTRIGHT;
$flix_FE2_OVERLAY_POS_MODE_XY = FE2_OVERLAY_POS_MODE_XY;
$flix_FE2_PNGEX_CP_EVENT = FE2_PNGEX_CP_EVENT;
$flix_FE2_PNGEX_CP_NAV = FE2_PNGEX_CP_NAV;
$flix_FE2_PNGEX_CP_ALL = FE2_PNGEX_CP_ALL;
$flix_BASE_H264PROFILE = BASE_H264PROFILE;
$flix_MAIN_H264PROFILE = MAIN_H264PROFILE;
$flix_HIGH_H264PROFILE = HIGH_H264PROFILE;
$flix_VP6_E = VP6_E;
$flix_VP6_S = VP6_S;
$flix_LAME_ABR = LAME_ABR;
$flix_LAME_CBR = LAME_CBR;
$flix_LAME_VBR_rh = LAME_VBR_rh;
$flix_LAME_VBR_mtrh = LAME_VBR_mtrh;
echo <<<HTML_END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en-US">
<head>
<title>Flix CGI Sample - PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function showall(show) {
var legend_list = document.getElementsByTagName('legend');
var i=0;
while(legend_list[i]) {
legend_list[i].parentNode.className=show?'expanded':'collapsed';
i++;
}
}
function toggle_expand(_this)
{
_this.parentNode.className= (_this.parentNode.className=='expanded') ?
'collapsed' : 'expanded';
document.getElementById('showall').checked=false;
}
function set_table_visible(ctable,visible)
{
var table= document.getElementById(ctable);
if(table) {
if(visible && table.className == 'hidden') {
table.className= '';
} else if(!visible && table.className == '') {
table.className= 'hidden';
}
}
}
function hide_tablelist(vistablename,tablelist)
{
var table= document.getElementById(vistablename);
if(table&&table.className=='hidden') {
table.className= '';
var i=0;
while(tablelist[i]) {
if(tablelist[i]!=vistablename) {
var hiddentable= document.getElementById(tablelist[i]);
set_table_visible(tablelist[i],false);
clear_value(hiddentable.getElementsByTagName('input'));
clear_value(hiddentable.getElementsByTagName('select'));
}
i++;
}
}
}
function set_acodec_visible(ctable)
{
var acodecs= new Array('aactable','aacplustable','amrnbtable','lametable','pcmtable');
hide_tablelist(ctable,acodecs);
}
function set_vcodec_visible(ctable)
{
var vcodecs= new Array('h263table','h264table','vp6atable','vp6table');
hide_tablelist(ctable,vcodecs);
}
function set_muxer_visible(mtable)
{
var muxers= new Array('flvtable','movtable','mp4table','swftable','tg2table','tgptable');
hide_tablelist(mtable,muxers);
}
function clear_value(list)
{
var i=0;
while(list[i]) { list[i++].value=''; }
}
function toggle_ftable(ftable,enabled)
{
var table= document.getElementById(ftable);
if(table) {
table.className = enabled ? '' : 'disabled';
if(!enabled) {
clear_value(table.getElementsByTagName('input'));
clear_value(table.getElementsByTagName('select'));
}
}
}
function reset_tables()
{
var table_list= document.getElementsByTagName('table');
var i=0;
while(table_list[i]) {
if (table_list[i].id.length > 7 &&
table_list[i].id.substring(0,7) == 'filter_') {
table_list[i].className= 'disabled';
} else if (table_list[i].id.indexOf('table') != -1) {
table_list[i].className= 'hidden';
}
i++;
}
}
</script>
<style type="text/css">
<!--
html {
font-family: Verdana, 'bitstream vera sans', Arial, sans-serif;
font-size: 100%;
color: rgb(56,56,56);
background-color: rgb(236,236,236);
}
body {
text-align: center;
margin: 0 auto;
}
div.content {
color: rgb(56,56,56);
background-color: rgb(246,246,246);
text-align: left;
margin: 0 auto;
width: 80%;
min-width: 768px;
max-width: 932px;
border-width: 0 1px;
border-color: rgb(144,144,144);
border-style: solid;
}
div.content:after {
content: "";
color: inherit;
background-color: rgb(250,250,250);
border-top: 1px solid rgb(144,144,144);
height: 20px;
width: 100%;
display: block;
}
fieldset table, fieldset {display: none;}
fieldset.expanded, fieldset.collapsed {display: block;}
fieldset.expanded table {display: block;}
fieldset.expanded table {display: table;}
h1 {
font-family: sans-serif;
font-size: 150%;
font-weight: normal;
text-align: left;
letter-spacing: -1px;
color: rgb(74,74,74);
background-color: inherit;
margin: 0;
}
a {
color: rgb(74,74,74);
background-color: transparent;
}
label {
font-size: 75%;
}
fieldset {
font-size: 75%;
line-height: 130%;
padding: 0;
margin: 20px;
border: none;
}
fieldset.expanded {
color: inherit;
background-color: rgb(252,252,252);
border-style: solid;
border-width: 1px;
border-color: rgb(217,217,217) rgb(217,217,217) rgb(188,188,188);
}
legend {
padding: 0 5px;
border-left: 10px solid rgb(217,217,217);
cursor: pointer;
}
legend:hover {text-decoration: underline;}
fieldset.expanded legend {
font-size: 150%;
font-weight: bold;
letter-spacing: -1px;
background: transparent;
margin-left: 12px;
border-right: 10px solid rgb(217,217,217);
display: block;
}
table {
font-size: 100%;
border-spacing: 0;
width: 100%;
}
th:before { display: none; }
th, td {
width: 50%;
vertical-align: top;
padding: 2px 3px;
border-width: 1px 0;
border-style: solid;
border-color: rgb(188,188,188) rgb(252,252,252) rgb(252,252,252);
}
tr:first-child>* {border-top-color: rgb(252,252,252);}
th {
font-weight: normal;
text-align: left;
padding: 2px 2px 2px 5px;
}
input[type] {
font-family: monospace;
font-size: 100%;
color: rgb(56,56,56);
background-color: inherit;
}
[type="text"], [type="number"] {
margin-right: 13px;
width: 222px;
}
[type="checkbox"].filter {
margin-left: 4px
}
[type="checkbox"] {
margin-left: 13px
}
[type="button"], [type="submit"] {
font-size: 1em;
margin: 0 2px 0 13px;
}
fieldset {
font-size: 75%;
margin: 20px 10px;
}
fieldset input[type="text"], fieldset input[type="number"] {
width: 95% !important;
margin: 0;
display: block;
}
fieldset.expanded table.hidden {
display: none;
}
table.disabled {
color: rgb(176,176,176);
}
-->
</style>
</head>
<body>
<div class='content'>
<noscript>
<p>This page requires javascript be enabled.</p>
</noscript>
<hr>
<h1>Flix CGI Sample</h1>
HTML_END;
if($incret == FALSE) {
echo "<p><b>".
"ERROR: include('flixengine2.php') failed.<br>".
"ERROR: This include file loads the PHP bindings for the Flix Engine.<br>".
"ERROR: Without them this sample will be unable to contact the encoding daemon.<br>".
"ERROR: See the server error log for more information.".
"</b></p>";
echo "</body></html>";
error_log("[flix2_sample.php] include('flix2_engine.php') failed, see 'PHP Notice's' above");
die;
}
echo <<<HTML_END
<p><small>flix2_sample.cgi version 1.9</small></p>
<h4>Instructions</h4>
<ul>
<li>In this sample you must choose a source file and an output file.<br>
If you leave all the other options blank then the sample will not call
the corresponding Flix Engine function and the default will be used.<br>
When done please press the "Start Encode" button at the bottom of the page.<br>
<li>Mouse over a function name to see its default, if applicable.
<li>Current source file directory: $indir
</ul>
<p>
<label><input type="checkbox" id='showall' onclick='showall(this.checked)'>Show all</label>
</p>
<form action="process_sample.php" method="post">
<!-- ##SOURCE FILE########################################################### -->
<hr>
<fieldset class='expanded' id="srcfile">
<legend onclick='toggle_expand(this)'>Source File</legend>
<table>
<tr>
<td>
HTML_END;
if(is_dir($indir)) {
$first= TRUE;
#let glob sort the directory contents for us
$files= glob($indir.'*');
echo "<select name='Flix2_SetInputFile' size='".(count($files)-1<15?count($files)-1:15)."'>\n";
foreach($files as $f) {
if(!is_dir($f)) {
echo "<option ";
if($first) { echo "selected "; $first=FALSE; };
echo "value=\"$f\">".str_replace($indir,'',$f)."</option>\n";
}
}
echo "</select>";
} else {
echo "WARNING couldn't open $indir: is_dir() returned FALSE<br>\n";
}
echo <<<HTML_END
</td>
</tr>
</table>
</fieldset>
<!-- ##DST FILE################################################################# -->
<hr>
<fieldset class='expanded' id="dstfile">
<legend onclick='toggle_expand(this)'>Output File</legend>
<table>
<tr>
<td>
<input type="text" name="Flix2_SetOutputFile" value="cgi-php-out.flv">
</td>
</tr>
</table>
</fieldset>
<!-- ##MAIN OPTIONS################################################################# -->
<hr>
<fieldset class='collapsed' id="main_opts">
<legend onclick='toggle_expand(this)'>Main Options</legend>
<table>
<tr>
<th><abbr title="default: FALSE">Flix2_SetOverwriteExistingFiles</abbr></th>
<td>
<select name="Flix2_SetOverwriteExistingFiles">
<option value=""></option>
<option value="$flix_on2true">TRUE</option>
<option value="$flix_on2false">FALSE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: TRUE">Flix2_SetExportAudio</abbr></th>
<td>
<select name="Flix2_SetExportAudio">
<option value=""></option>
<option value="$flix_on2true">TRUE</option>
<option value="$flix_on2false">FALSE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: TRUE">Flix2_SetExportVideo</abbr></th>
<td>
<select name="Flix2_SetExportVideo">
<option value=""></option>
<option value="$flix_on2true">TRUE</option>
<option value="$flix_on2false">FALSE</option>
</select>
</td>
</tr>
</table>
</fieldset>
<!-- ##CODECS####################################################################### -->
<hr>
<fieldset class='collapsed' id="codecs">
<legend onclick='toggle_expand(this)'>Codecs</legend>
<table>
<tr><th><b>Video Codecs</b></th></tr>
<tr>
<td>
<label>
<input type='radio' name='vcodec:' value='FE2_CODEC_VP6'
onfocus="set_vcodec_visible('vp6table')">
<abbr title="For use with FLV/SWF">FE2_CODEC_VP6</abbr>
</label>
<label>
<input type='radio' name='vcodec:' value='FE2_CODEC_VP6ALPHA'
onfocus="set_vcodec_visible('vp6atable')">
<abbr title="For use with FLV/SWF">FE2_CODEC_VP6ALPHA</abbr>
</label>
<label>
<input type='radio' name='vcodec:' value='FE2_CODEC_H263'
onfocus="set_vcodec_visible('h263table')">
<abbr title="For use with FLV/SWF">FE2_CODEC_H263</abbr>
</label>
<label>
<input type='radio' name='vcodec:' value='FE2_CODEC_H263_BASELINE'
onfocus="set_vcodec_visible('h263table')">
<abbr title="For use with 3GP">FE2_CODEC_H263_BASELINE</abbr>
</label>
<label>
<input type='radio' name='vcodec:' value='FE2_CODEC_H264'
onfocus="set_vcodec_visible('h264table')">
<abbr title="For use with 3GP/3G2/MOV/MP4">FE2_CODEC_H264</abbr>
</label>
<!-- VP6 codec parameters -->
<table id='vp6table' class='hidden'>
<tr>
<th><abbr title="default: 448kbps">FE2_VP6_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: MAX_KEYFRAMES">FE2_VP6_KFINTTYPE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6_KFINTTYPE">
<option value=""></option>
<option value="$flix_MAX_KEYFRAMES">MAX_KEYFRAMES</option>
<option value="$flix_FIXED_KEYFRAMES">FIXED_KEYFRAMES</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 12*fps or 360 frames if the framerate is unknown">FE2_VP6_KFFREQ</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_KFFREQ'></td>
</tr>
<tr>
<th><abbr title="default: VBR_2PASSControl">FE2_VP6_RC_MODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6_RC_MODE">
<option value=""></option>
<option value="$flix_VBR_2PASSControl">VBR_2PASSControl</option>
<option value="$flix_CBR_2PASSControl">CBR_2PASSControl</option>
<option value="$flix_VBR_1PASSControl">VBR_1PASSControl</option>
<option value="$flix_CBR_1PASSControl">CBR_1PASSControl</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: COMPRESSMODE_GOOD">FE2_VP6_CXMODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6_CXMODE">
<option value=""></option>
<option value="$flix_COMPRESSMODE_GOOD">COMPRESSMODE_GOOD</option>
<option value="$flix_COMPRESSMODE_BEST">COMPRESSMODE_BEST</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: VP6_E">FE2_VP6_PROFILE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6_PROFILE">
<option value=""></option>
<option value="$flix_VP6_E">VP6_E</option>
<option value="$flix_VP6_S">VP6_S</option>
</select>
</td>
</tr>
<tr><th><b>Advanced Settings:</b></th></tr>
<tr>
<th><abbr title="default: 0">FE2_VP6_CONCURRENCY</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_CONCURRENCY'></td>
</tr>
<tr>
<th><abbr title="default: 90">FE2_VP6_UNDERSHOOT_PCT</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_UNDERSHOOT_PCT'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_MIN_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_MIN_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_MAX_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_MAX_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_SHARPNESS</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_SHARPNESS'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_NOISE_REDUCTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_NOISE_REDUCTION'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_TEMPORAL_RESAMPLING</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_TEMPORAL_RESAMPLING'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6_TEMPORAL_DOWN_WATERMARK</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_TEMPORAL_DOWN_WATERMARK'></td>
</tr>
<tr>
<th><abbr title="default: 100">FE2_VP6_STREAM_PEAK_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_STREAM_PEAK_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: 6 (CBR only)">FE2_VP6_STREAM_PREBUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_STREAM_PREBUFFER'></td>
</tr>
<tr>
<th><abbr title="default: 10 (CBR only)">FE2_VP6_STREAM_OPTIMAL_BUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_STREAM_OPTIMAL_BUFFER'></td>
</tr>
<tr>
<th><abbr title="(CBR only)">FE2_VP6_STREAM_MAX_BUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_STREAM_MAX_BUFFER'></td>
</tr>
<tr>
<th><abbr title="default: 40">FE2_VP6_2PASS_MIN_SECTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_2PASS_MIN_SECTION'></td>
</tr>
<tr>
<th><abbr title="default: 400">FE2_VP6_2PASS_MAX_SECTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6_2PASS_MAX_SECTION'></td>
</tr>
</table>
<!-- END - VP6 codec parameters -->
<!-- VP6A codec parameters -->
<table id='vp6atable' class='hidden'>
<tr>
<th><abbr title="default: 380kbps">FE2_VP6A_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: 68kbps (15% of default 448kbps)">FE2_VP6A_ALPHA_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_ALPHA_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: MAX_KEYFRAMES">FE2_VP6A_KFINTTYPE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6A_KFINTTYPE">
<option value=""></option>
<option value="$flix_MAX_KEYFRAMES">MAX_KEYFRAMES</option>
<option value="$flix_FIXED_KEYFRAMES">FIXED_KEYFRAMES</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 12*fps or 360 frames if the framerate is unknown">FE2_VP6A_KFFREQ</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_KFFREQ'></td>
</tr>
<tr>
<th><abbr title="default: VBR_2PASSControl">FE2_VP6A_RC_MODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6A_RC_MODE">
<option value=""></option>
<option value="$flix_VBR_2PASSControl">VBR_2PASSControl</option>
<option value="$flix_CBR_2PASSControl">CBR_2PASSControl</option>
<option value="$flix_VBR_1PASSControl">VBR_1PASSControl</option>
<option value="$flix_CBR_1PASSControl">CBR_1PASSControl</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: COMPRESSMODE_GOOD">FE2_VP6A_CXMODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_VP6A_CXMODE">
<option value=""></option>
<option value="$flix_COMPRESSMODE_GOOD">COMPRESSMODE_GOOD</option>
<option value="$flix_COMPRESSMODE_BEST">COMPRESSMODE_BEST</option>
</select>
</td>
</tr>
<tr><th><b>Advanced Settings:</b></th></tr>
<tr>
<th><abbr title="default: 90">FE2_VP6A_UNDERSHOOT_PCT</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_UNDERSHOOT_PCT'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_MIN_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_MIN_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_ALPHA_MIN_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_ALPHA_MIN_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_MAX_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_MAX_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_MAX_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_ALPHA_MAX_Q'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_SHARPNESS</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_SHARPNESS'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_ALPHA_SHARPNESS</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_ALPHA_SHARPNESS'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_NOISE_REDUCTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_NOISE_REDUCTION'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_ALPHA_NOISE_REDUCTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_ALPHA_NOISE_REDUCTION'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_TEMPORAL_RESAMPLING</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_TEMPORAL_RESAMPLING'></td>
</tr>
<tr>
<th><abbr title="default: bits per pixel dependent (see api docs)">FE2_VP6A_TEMPORAL_DOWN_WATERMARK</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_TEMPORAL_DOWN_WATERMARK'></td>
</tr>
<tr>
<th><abbr title="default: 100">FE2_VP6A_STREAM_PEAK_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_STREAM_PEAK_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: 6 (CBR only)">FE2_VP6A_STREAM_PREBUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_STREAM_PREBUFFER'></td>
</tr>
<tr>
<th><abbr title="default: 10 (CBR only)">FE2_VP6A_STREAM_OPTIMAL_BUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_STREAM_OPTIMAL_BUFFER'></td>
</tr>
<tr>
<th><abbr title="(CBR only)">FE2_VP6A_STREAM_MAX_BUFFER</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_STREAM_MAX_BUFFER'></td>
</tr>
<tr>
<th><abbr title="default: 40">FE2_VP6A_2PASS_MIN_SECTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_2PASS_MIN_SECTION'></td>
</tr>
<tr>
<th><abbr title="default: 400">FE2_VP6A_2PASS_MAX_SECTION</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_VP6A_2PASS_MAX_SECTION'></td>
</tr>
</table>
<!-- END - VP6A codec parameters -->
<!-- H263 codec parameters -->
<table id='h263table' class='hidden'>
<tr>
<th><abbr title="default: 448kbps">FE2_H263_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H263_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: MAX_KEYFRAMES">FE2_H263_KFINTTYPE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_H263_KFINTTYPE">
<option value=""></option>
<option value="$flix_MAX_KEYFRAMES">MAX_KEYFRAMES</option>
<option value="$flix_FIXED_KEYFRAMES">FIXED_KEYFRAMES</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 12*fps or 360 frames if the framerate is unknown">FE2_H263_KFFREQ</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H263_KFFREQ'></td>
</tr>
<tr>
<th><abbr title="default: VBR_2PASSControl">FE2_H263_RC_MODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_H263_RC_MODE">
<option value=""></option>
<option value="$flix_VBR_2PASSControl">VBR_2PASSControl</option>
<option value="$flix_CBR_2PASSControl">CBR_2PASSControl</option>
<option value="$flix_VBR_1PASSControl">VBR_1PASSControl</option>
<option value="$flix_CBR_1PASSControl">CBR_1PASSControl</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 31">FE2_H263_MAX_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H263_MAX_Q'></td>
</tr>
<tr>
<th><abbr title="default: 2">FE2_H263_MIN_Q</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H263_MIN_Q'></td>
</tr>
</table>
<!-- END - H263 codec parameters -->
<!-- H264 codec parameters -->
<table id='h264table' class='hidden'>
<tr>
<th><abbr title="default: 448kbps">FE2_H264_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H264_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: 12*fps or 360 frames if the framerate is unknown">FE2_H264_KFFREQ</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H264_KFFREQ'></td>
</tr>
<tr>
<th><abbr title="default: VBR_1PASSControl">FE2_H264_RC_MODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_H264_RC_MODE">
<option value=""></option>
<option value="$flix_VBR_1PASSControl">VBR_1PASSControl</option>
<option value="$flix_CBR_1PASSControl">CBR_1PASSControl</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: MAIN_H264PROFILE">FE2_H264_PROFILE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_H264_PROFILE">
<option value=""></option>
<option value="$flix_BASE_H264PROFILE">BASE_H264PROFILE</option>
<option value="$flix_MAIN_H264PROFILE">MAIN_H264PROFILE</option>
<option value="$flix_HIGH_H264PROFILE">HIGH_H264PROFILE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_H264_B_FRAME_RATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_H264_B_FRAME_RATE'></td>
</tr>
</table>
<!-- END - H264 codec parameters -->
</td>
</tr> <!-- END - video codecs -->
<tr><th><b>Audio Codecs</b></th></tr>
<tr>
<td>
<label>
<input type='radio' name='acodec:' value='FE2_CODEC_AAC'
onfocus="set_acodec_visible('aactable')">
<abbr title="For use with 3GP/3G2/MOV/MP4">FE2_CODEC_AAC</abbr>
</label>
<label>
<input type='radio' name='acodec:' value='FE2_CODEC_AACPLUS'
onfocus="set_acodec_visible('aacplustable')">
<abbr title="For use with 3GP/3G2/MOV/MP4">FE2_CODEC_AACPLUS</abbr>
</label>
<label>
<input type='radio' name='acodec:' value='FE2_CODEC_AMR_NB'
onfocus="set_acodec_visible('amrnbtable')">
<abbr title="For use with 3GP">FE2_CODEC_AMR_NB</abbr>
</label>
<label>
<input type='radio' name='acodec:' value='FE2_CODEC_LAME'
onfocus="set_acodec_visible('lametable') ">
<abbr title="For use with FLV/SWF">FE2_CODEC_LAME</abbr>
</label>
<label>
<input type='radio' name='acodec:' value='FE2_CODEC_PCM'
onfocus="set_acodec_visible('pcmtable')">
<abbr title="For use with FLV/SWF">FE2_CODEC_PCM</abbr>
</label>
<!-- AMR_NB codec parameters -->
<table id='amrnbtable' class='hidden'>
<tr>
<th><abbr title="default: 12.2kbps">FE2_AMR_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_AMR_BITRATE'></td>
</tr>
</table>
<!-- END - AMR_NB codec parameters -->
<!-- AAC codec parameters -->
<table id='aactable' class='hidden'>
<tr>
<th><abbr title="default: 64kbps">FE2_AAC_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_AAC_BITRATE'></td>
</tr>
</table>
<!-- END - AAC codec parameters -->
<!-- AACPLUS codec parameters -->
<table id='aacplustable' class='hidden'>
<tr>
<th><abbr title="default: 64kbps">FE2_AACPLUS_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_AACPLUS_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: disabled (aacPlus v1)">FE2_AACPLUS_PARAMETRIC_STEREO</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_AACPLUS_PARAMETRIC_STEREO">
<option value=""></option>
<option value="0">disable (aacPlus v1)</option>
<option value="1">enable (aacPlus v2)</option>
</select>
</td>
</tr>
</table>
<!-- END - AACPLUS codec parameters -->
<!-- LAME codec parameters -->
<table id='lametable' class='hidden'>
<tr>
<th><abbr title="default: 64kbps">FE2_LAME_BITRATE</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_LAME_BITRATE'></td>
</tr>
<tr>
<th><abbr title="default: 5">FE2_LAME_QUALITY</abbr></th>
<td><input type='text' name='Flix2_CodecSetParam:FE2_LAME_QUALITY'></td>
</tr>
<tr>
<th><abbr title="default: LAME_CBR">FE2_LAME_RC_MODE</abbr></th>
<td>
<select name="Flix2_CodecSetParam:FE2_LAME_RC_MODE">
<option value=""></option>
<option value="$flix_LAME_CBR">LAME_CBR</option>
<option value="$flix_LAME_ABR">LAME_ABR</option>
<option value="$flix_LAME_VBR_rh">LAME_VBR_rh</option>
<option value="$flix_LAME_VBR_mtrh">LAME_VBR_mtrh</option>
</select>
</td>
</tr>
</table>
<!-- END - LAME codec parameters -->
<!-- PCM codec parameters -->
<table id='pcmtable' class='hidden'>
<tr>
<th>(FE2_CODEC_PCM defines no parameters)</th>
</tr>
</table>
<!-- END - PCM codec parameters -->
</td>
</tr> <!-- END - audio codecs -->
</table>
</fieldset>
<!-- ##FILTERS###################################################################### -->
<hr>
<fieldset class='collapsed' id="filters">
<legend onclick='toggle_expand(this)'>Filters</legend>
<table>
<tr><th><b>A/V Filters</b></th></tr>
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_CUT' value='avfilter:'
onchange="toggle_ftable('filter_cut',this.checked)">
FE2_FILTER_CUT
</label>
<table id='filter_cut' class='disabled'>
<tr>
<th><abbr title="default: 0">FE2_CUT_START_SEC</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CUT_START_SEC'></td>
</tr>
<tr>
<th><abbr title="default: -1">FE2_CUT_STOP_SEC</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CUT_STOP_SEC'></td>
</tr>
<tr>
<th><abbr title="default: 1">FE2_CUT_USE_SEEK</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_CUT_USE_SEEK">
<option value=""></option>
<option value="$flix_on2false">FALSE</option>
<option value="$flix_on2true">TRUE</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
<!-- END - CUT filter parameters -->
<tr><th><b>Video Filters</b></th></tr>
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_ADAPTIVE_DEINTERLACE' value='vfilter:'
onchange="toggle_ftable('filter_adaptive_deinterlace',this.checked)">
FE2_FILTER_ADAPTIVE_DEINTERLACE
</label>
<table id='filter_adaptive_deinterlace' class='disabled'>
<tr>
<th><abbr title="default: 0">FE2_ADAPTIVE_DEINTERLACE_MODE</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_ADAPTIVE_DEINTERLACE_MODE'></td>
</tr>
</table>
</td>
</tr>
<!-- END - ADAPTIVE DEINTERLACE filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_BCHS' value='vfilter:'
onchange="toggle_ftable('filter_bchs',this.checked)">
FE2_FILTER_BCHS
</label>
<table id='filter_bchs' class='disabled'>
<tr>
<th><abbr title="default: 0">FE2_BCHS_BRIGHTNESS</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_BCHS_BRIGHTNESS'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_BCHS_CONTRAST</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_BCHS_CONTRAST'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_BCHS_HUE</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_BCHS_HUE'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_BCHS_SATURATION</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_BCHS_SATURATION'></td>
</tr>
</table>
</td>
</tr>
<!-- END - BCHS filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_CROP' value='vfilter:'
onchange="toggle_ftable('filter_crop',this.checked)">
FE2_FILTER_CROP
</label>
<table id='filter_crop' class='disabled'>
<tr>
<th><abbr title="default: 0">FE2_CROP_TOP</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CROP_TOP'></td>
</tr>
<tr>
<th><abbr title="default: input image height">FE2_CROP_BOTTOM</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CROP_BOTTOM'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_CROP_LEFT</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CROP_LEFT'></td>
</tr>
<tr>
<th><abbr title="default: input image width">FE2_CROP_RIGHT</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_CROP_RIGHT'></td>
</tr>
</table>
</td>
</tr>
<!-- END - CROP filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_FRAMERATE' value='vfilter:'
onchange="toggle_ftable('filter_framerate',this.checked)">
FE2_FILTER_FRAMERATE
</label>
<table id='filter_framerate' class='disabled'>
<tr>
<th><abbr title="decimation interval, range: [1,] default: disabled">FE2_FRAMERATE_DECIMATE</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_FRAMERATE_DECIMATE'></td>
</tr>
<tr>
<th><abbr title="explicit frame rate, range: (0.0,] default: disabled">FE2_FRAMERATE_FPS</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_FRAMERATE_FPS'></td>
</tr>
</table>
</td>
</tr>
<!-- END - FRAMERATE filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_OVERLAY' value='vfilter:'
onchange="toggle_ftable('filter_overlay',this.checked)">
FE2_FILTER_OVERLAY
</label>
<table id='filter_overlay' class='disabled'>
<tr>
<th>
<abbr title="Currently searching $overlaydir for overlay images">FE2_OVERLAY_FILE</abbr>
</th>
<td>
HTML_END;
if(is_dir($overlaydir)) {
echo "<select name=\"Flix2_FilterSetParamAsStr:FE2_OVERLAY_FILE\">\n";
echo "<option value=\"\"></option>\n";
foreach(glob($overlaydir.'*') as $f) {
if ((eregi("\.bmp",$f) || eregi("\.png",$f)) && !is_dir($f)) {
echo "<option value=\"$f\">".
str_replace($overlaydir,'',$f)."</option>\n";
}
}
echo "</select>\n";
echo "<br>default: None, must be set to the absolute path of the overlay";
echo " input file, e.g. '/path/to/my/overlay.png'";
} else {
echo "WARNING couldn't open $overlaydir: is_dir() returned FALSE<br>\n";
}
echo <<<HTML_END
</td>
</tr>
<tr>
<th><abbr title="default: FALSE">FE2_OVERLAY_MASK_XY</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_OVERLAY_MASK_XY">
<option value=""></option>
<option value="$flix_on2false">FALSE</option>
<option value="$flix_on2true">TRUE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_MASK_X</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_MASK_X'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_MASK_Y</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_MASK_Y'></td>
</tr>
<tr>
<th><abbr title="default: FALSE">FE2_OVERLAY_MASK_RGB</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_OVERLAY_MASK_RGB">
<option value=""></option>
<option value="$flix_on2false">FALSE</option>
<option value="$flix_on2true">TRUE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_MASK_R</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_MASK_R'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_MASK_G</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_MASK_G'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_MASK_B</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_MASK_B'></td>
</tr>
<tr>
<th><abbr title="default: TOP LEFT">FE2_OVERLAY_POS</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_OVERLAY_POS">
<option value=""></option>
<option value="$flix_FE2_OVERLAY_POS_MODE_TOPLEFT">FE2_OVERLAY_POS_MODE_TOPLEFT</option>
<option value="$flix_FE2_OVERLAY_POS_MODE_BOTLEFT">FE2_OVERLAY_POS_MODE_BOTLEFT</option>
<option value="$flix_FE2_OVERLAY_POS_MODE_CENTER">FE2_OVERLAY_POS_MODE_CENTER</option>
<option value="$flix_FE2_OVERLAY_POS_MODE_TOPRIGHT">FE2_OVERLAY_POS_MODE_TOPRIGHT</option>
<option value="$flix_FE2_OVERLAY_POS_MODE_BOTRIGHT">FE2_OVERLAY_POS_MODE_BOTRIGHT</option>
<option value="$flix_FE2_OVERLAY_POS_MODE_XY">FE2_OVERLAY_POS_MODE_XY</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_POS_X</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_POS_X'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_OVERLAY_POS_Y</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_OVERLAY_POS_Y'></td>
</tr>
</table>
</td>
</tr>
<!-- END - OVERLAY filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_PNGEX' value='vfilter:'
onchange="toggle_ftable('filter_pngex',this.checked)">
FE2_FILTER_PNGEX
</label>
<table id='filter_pngex' class='disabled'>
<tr>
<th><abbr title="default: output file directory">FE2_PNGEX_OUTPUT_DIRECTORY</abbr></th>
<td><input type='text' name='Flix2_FilterSetParamAsStr:FE2_PNGEX_OUTPUT_DIRECTORY'></td>
</tr>
<tr>
<th><abbr title="default: none">FE2_PNGEX_FILENAME_PREFIX</abbr></th>
<td><input type='text' name='Flix2_FilterSetParamAsStr:FE2_PNGEX_FILENAME_PREFIX'></td>
</tr>
<tr>
<th><abbr title="default: none">FE2_PNGEX_FILENAME_SUFFIX</abbr></th>
<td><input type='text' name='Flix2_FilterSetParamAsStr:FE2_PNGEX_FILENAME_SUFFIX'></td>
</tr>
<tr>
<th><abbr title="default: input width">FE2_PNGEX_WIDTH</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_WIDTH'></td>
</tr>
<tr>
<th><abbr title="default: input height">FE2_PNGEX_HEIGHT</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_HEIGHT'></td>
</tr>
<tr>
<th><abbr title="default: FALSE">FE2_PNGEX_EXPORT_FIRST_FRAME_PNG</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_PNGEX_EXPORT_FIRST_FRAME_PNG">
<option value=""></option>
<option value="$flix_on2false">FALSE</option>
<option value="$flix_on2true">TRUE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="default: FALSE">FE2_PNGEX_ENABLE_ALPHA</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_PNGEX_ENABLE_ALPHA">
<option value=""></option>
<option value="$flix_on2false">FALSE</option>
<option value="$flix_on2true">TRUE</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="interval in ms; default: disabled">FE2_PNGEX_EXPORT_INTERVAL</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_EXPORT_INTERVAL'></td>
</tr>
<tr>
<th><abbr title="comma delimited, e.g. t0,t1,t2,...tn">FE2_PNGEX_EXPORT_TIME_STRING</abbr></th>
<td><input type='text' name='Flix2_FilterSetParamAsStr:FE2_PNGEX_EXPORT_TIME_STRING'></td>
</tr>
<tr>
<th><abbr title="default: FALSE">FE2_PNGEX_EXPORT_CUE_POINTS</abbr></th>
<td>
<select name="Flix2_FilterSetParam:FE2_PNGEX_EXPORT_CUE_POINTS">
<option value=""></option>
<option value="$flix_FE2_PNGEX_CP_ALL">All cue points (FE2_PNGEX_CP_ALL)</option>
<option value="$flix_FE2_PNGEX_CP_NAV">Only navigation cue points (FE2_PNGEX_CP_NAV)</option>
<option value="$flix_FE2_PNGEX_CP_EVENT">Only event cue points (FE2_PNGEX_CP_EVENT)</option>
</select>
</td>
</tr>
<tr>
<th><abbr title="[-1,9] default: -1 (Z_DEFAULT_COMPRESSION)">FE2_PNGEX_COMPRESSION_LEVEL</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_COMPRESSION_LEVEL'></td>
</tr>
<tr><th><b>Automatic PNG Export Options:</b></th><td></td></tr>
<tr>
<th>FE2_PNGEX_AUTO_EXPORT_COUNT</th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_AUTO_EXPORT_COUNT'></td>
</tr>
<tr>
<th><abbr title="start time in ms; default: 0">FE2_PNGEX_AUTO_EXPORT_START_TIME</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_AUTO_EXPORT_START_TIME'></td>
</tr>
<tr>
<th><abbr title="stop time in ms; default: <clip length>">FE2_PNGEX_AUTO_EXPORT_END_TIME</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_AUTO_EXPORT_END_TIME'></td>
</tr>
<tr>
<th><abbr title="default: 0">FE2_PNGEX_AUTO_EXPORT_RANDOM_PERIOD</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_PNGEX_AUTO_EXPORT_RANDOM_PERIOD'></td>
</tr>
</table>
</td>
</tr>
<!-- END - PNGEX filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_SCALE' value='vfilter:'
onchange="toggle_ftable('filter_scale',this.checked)">
FE2_FILTER_SCALE
</label>
<table id='filter_scale' class='disabled'>
<tr>
<th><abbr title="default: input image width">FE2_SCALE_WIDTH</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_SCALE_WIDTH'></td>
</tr>
<tr>
<th><abbr title="default: input image height">FE2_SCALE_HEIGHT</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_SCALE_HEIGHT'></td>
</tr>
</table>
</td>
</tr>
<!-- END - SCALE filter parameters -->
<tr><th><b>Audio Filters</b></th></tr>
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_HIGHPASS' value='afilter:'
onchange="toggle_ftable('filter_highpass',this.checked)">
FE2_FILTER_HIGHPASS
</label>
<table id='filter_highpass' class='disabled'>
<tr>
<th><abbr title="default: 0.707">FE2_HIGHPASS_Q</abbr></th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_HIGHPASS_Q'></td>
</tr>
<tr>
<th>FE2_HIGHPASS_CUTOFF</th>
<td><input type='text' name='Flix2_FilterSetParam:FE2_HIGHPASS_CUTOFF'></td>
</tr>
</table>
</td>
</tr>
<!-- END - HIGHPASS filter parameters -->
<tr>
<td>
<label>
<input type='checkbox' class='filter'
name='FE2_FILTER_LOWPASS' value='afilter:'
onchange="toggle_ftable('filter_lowpass',this.checked)">