FFMPEG TOOL
Change class name on click in jQuery
by Elvis de Freitas
HTML
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
Credits to: <a href="http://ffmpeg.shanewhite.co/">ffmpeg.shanewhite.co</a>
<h1>Generate FFMPEG Text Fade In/Out Effects</h1>
<div class="container">
<div class="row">
<div class="col-lg-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">File Info</h3>
</div>
<div class="panel-body">
<div class="form-group ">
<label class="control-label " for="input-file-name">
Input File Name
</label>
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-file-video-o"></i>
</div>
<input class="form-control" id="input-file-name" value="input.mp4" name="input-file-name" placeholder="Enter Input File Name" type="text" />
</div>
</div>
<div class="form-group ">
<label class="control-label " for="output-file-name">
Output File name
</label>
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-file-video-o"></i>
</div>
<input class="form-control" id="output-file-name" value="output.mp4" name="output-file-name" placeholder="Enter Output File Name" type="text" />
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-9">
<div class="panel panel-info">
...
CSS
#output {
font-family: monospace;
}
body {
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
JavaScript
var displayTextArray = [];
var textColor = "ffffff";
function renderResults(){
var inputFile = $("#input-file-name").val();
var outputFile = $("#output-file-name").val();
var commandBegin = 'ffmpeg -i ' + inputFile + ' -filter_complex "[0:v]';
var commandEnd = '" ' + $("#ipt-add-args").val() + " " + outputFile;
var outputDisplayText = "";
$.each(displayTextArray, function(index, value){
if (index != 0){
outputDisplayText = outputDisplayText + "\\\n," + value;
} else {
outputDisplayText = value;
}
});
$("#output").text(commandBegin + outputDisplayText + commandEnd);
}
$("#btn-undo").click(function(){
displayTextArray.pop();
renderResults()
});
$("#btn-reset-commands").click(function(){
displayTextArray = [];
renderResults();
});
$("#color-picker").spectrum({
color: "ffffff",
change: function(color) {
textColor = color.toHexString().substr(1);
}
});
$("#reset-fields").click(function() {
$("#text").val("");
$("#font-size").val("64");
$("#text-x-location").val("(w-text_w)/2");
$("#text-y-location").val("(h-text_h)/2");
$("#fade-in-start-time").val("");
$("#fade-in-duration").val("");
$("#text-display-time").val("");
$("#fade-out-duration").val("");
});
$("#add-text").click(function() {
var inputFile = $("#input-file-name").val();
var outputFile = $("#output-file-name").val();
if (inputFile == "" || outputFile == "")
{
alert("Please enter input and outputfiles");
} else
{
var text = $("#text").val();
var fontSize = $("#font-size").val();
var fontFileLocation = $("#font-file").val();
var textX = $("#text-x-location").val();
var textY = $("#text-y-location").val();
var t1 = parseFloat($("#fade-in-start-time").val());
var t2 = parseFloat($("#fade-in-duration").val());
var t3 = parseFloat($("#text-display-time").val());
var t4 = parseFloat($("#fade-out-duration").val());
var fadeOutTime = t1+t2+t3;
console.log(fadeOutTime);
...