
Firefogg
video encoding and uploading for Firefox
Example using a simple multipart POST request(requires encoding to be finished):
To use Firefogg on your site, you have to use the Firefogg Javascript api.
This is an example that does not need any changes on your backend.
You can just replace a multipart form.
For an example that support resumable upload and
uploads while it is encoding check here.
if(typeof(Firefogg) == 'undefined') {
alert('You dont have Firefogg, please go to http://firefogg.org to install it');
window.open('http://firefogg.org');
}
var ogg = new Firefogg();
if(ogg.selectVideo()) {
var options = JSON.stringify({'maxSize': 320, 'videoBitrate': 500});
ogg.encode(options,
function(result, file) {
result = JSON.parse(result);
update_progress(result.progress, result.state);
ogg.post(uploadUrl, videoName, data,
function(result) {
result = JSON.parse(result);
update_progress(result.progress, result.state);
if(result.resultUrl) {
document.location.href = result.resultUrl;
}
},
function(progress) {
progress = JSON.parse(progress);
update_progress(progress.progress, progress.state);
}
);
},
function(progress) {
progress = JSON.parse(progress);
update_progress(progress.progress, progress.state);
}
);
}
function update_progress(progress, text) {
//do something with status and progress, i.e. set progressbar width:
var progressbar = document.getElementById('progressbar');
progressbar.style.width= parseInt(progress*200) +'px';
progressbar.innerHTML = parseInt(progress*100) + '% - ' + text;
}