Open Rahul-Jagga opened 8 years ago
this is my handler.js
var fs = require('fs'), sys = require('sys'), exec = require('child_process').exec; //r ejs = require('ejs'); //r mysql = require('mysql'); //r DATABASE = 'vistasoft';
function home(response) { response.writeHead(200, { 'Content-Type': 'text/html' }); response.end(fs.readFileSync('./static/home.html')); }
/ var mysql = mysql.createConnection({ host: 'localhost', port: 3306, user: 'root', password: 'raazkumar', });/
function ifWin(response, files) { // following command tries to merge wav/webm files using ffmpeg var merger = dirname + '\merger.bat'; var audioFile = dirname + '\upload\' + files.audio.name; var videoFile = dirname + '\upload\' + files.video.name; var mergedFile = dirname + '\upload\' + files.audio.name.split('.')[0] + '-merged.webm';
// if a "directory" has space in its name; below command will fail // e.g. "c:\\dir name\\uploads" will fail. // it must be like this: "c:\\dir-name\\uploads" var command = merger + ', ' + audioFile + " " + videoFile + " " + mergedFile + ''; exec(command, function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log('Error code: ' + error.code); console.log('Signal received: ' + error.signal); } else { response.statusCode = 200; response.writeHead(200, { 'Content-Type': 'application/json' }); response.end(files.audio.name.split('.')[0] + '-merged.webm'); fs.unlink(audioFile); fs.unlink(videoFile); } });
}
function ifMac(response, files) { // its probably *nix, assume ffmpeg is available var audioFile = dirname + '/uploads/' + files.audio.name; var videoFile = dirname + '/uploads/' + files.video.name; var mergedFile = __dirname + '/uploads/' + files.audio.name.split('.')[0] + '-merged.webm';
var util = require('util'), exec = require('child_process').exec; var command = "ffmpeg -i " + audioFile + " -i " + videoFile + " -map 0:0 -map 1:0 " + mergedFile;
console.log("jieeeeee"+command); exec(command, function (error, stdout, stderr) { if (stdout) { console.log(stdout); } if (stderr){ console.log(stderr); }
if (error) { console.log('exec error: ' + error); response.statusCode = 404; response.end(); } else { response.statusCode = 200; response.writeHead(200, { 'Content-Type': 'application/json' }); response.end(files.audio.name.split('.')[0] + '-merged.webm'); // removing audio/video files fs.unlink(audioFile); fs.unlink(videoFile); } });
//this function merges wav/webm files function merge(response, files) { // detect the current operating system var isWin = !!process.platform.match( /^win/ );
if (isWin) { ifWin(response, files); } else { ifMac(response, files); }
function _upload(response, file) { var fileRootName = file.name.split('.').shift(), fileExtension = file.name.split('.').pop(), filePathBase = './public/upload/', fileRootNameWithBase = filePathBase + fileRootName, filePath = fileRootNameWithBase + '.' + fileExtension, fileID = 2, fileBuffer;
while (fs.existsSync(filePath)) { filePath = fileRootNameWithBase + '(' + fileID + ').' + fileExtension; console.log("myfilepath="+filePath); fileID += 1; } file.contents = file.contents.split(',').pop(); fileBuffer = new Buffer(file.contents, "base64");
console.log("file path="+filePath); fs.writeFileSync(filePath, fileBuffer); }
// this function uploads files function upload(response, postData) { var files = JSON.parse(postData);
// writing audio file to disk _upload(response, files.audio); if (files.uploadOnlyAudio) { response.statusCode = 200; response.writeHead(200, { 'Content-Type': 'application/json' }); console.log("files.audio="+files.audio.name); response.end(files.audio.name); } if (!files.uploadOnlyAudio) { // writing video file to disk _upload(response, files.video); merge(response, files); }
function hasMediaType(type) { var isHasMediaType = false; ['audio/wav', 'audio/ogg', 'video/webm', 'video/mp4'].forEach(function(t) { if(t===type) { isHasMediaType = true; } });
return isHasMediaType;
function serveStatic(response, pathname) {
var extension = pathname.split('.').pop(), extensionTypes = { 'js': 'application/javascript', 'webm': 'video/webm', 'mp4': 'video/mp4', 'wav': 'audio/wav', 'ogg': 'audio/ogg', 'gif': 'image/gif' }; response.writeHead(200, { 'Content-Type': extensionTypes[extension] }); if (hasMediaType(extensionTypes[extension])) { response.end(fs.readFileSync('.' + pathname)); } else { response.end(fs.readFileSync('./static' + pathname)); } }
exports.home = home; exports.upload = upload; exports.serveStatic = serveStatic;
end of handler.js
this is my merger.bat file code @echo off "C:\ffmpeg\bin\ffmpeg.exe" -itsoffset -00:00:00 -i %1 -itsoffset -00:00:00 -i %2 %3
for %%a in (".webm") do ffmpeg -i "%%a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "C:\Users\Vistasoft\Desktop\KVApp_update\public\upload\%%~na.mp4" pause
end of merger.bat
now i want to get and save mp4 file help us as soon as email : rahul.vistasoft@gmail.com
this is my handler.js
var fs = require('fs'), sys = require('sys'), exec = require('child_process').exec; //r ejs = require('ejs'); //r mysql = require('mysql'); //r DATABASE = 'vistasoft';
function home(response) { response.writeHead(200, { 'Content-Type': 'text/html' }); response.end(fs.readFileSync('./static/home.html')); }
/ var mysql = mysql.createConnection({ host: 'localhost', port: 3306, user: 'root', password: 'raazkumar', });/
function ifWin(response, files) { // following command tries to merge wav/webm files using ffmpeg var merger = dirname + '\merger.bat'; var audioFile = dirname + '\upload\' + files.audio.name; var videoFile = dirname + '\upload\' + files.video.name; var mergedFile = dirname + '\upload\' + files.audio.name.split('.')[0] + '-merged.webm';
}
function ifMac(response, files) { // its probably *nix, assume ffmpeg is available var audioFile = dirname + '/uploads/' + files.audio.name; var videoFile = dirname + '/uploads/' + files.video.name; var mergedFile = __dirname + '/uploads/' + files.audio.name.split('.')[0] + '-merged.webm';
console.log("jieeeeee"+command); exec(command, function (error, stdout, stderr) { if (stdout) { console.log(stdout); } if (stderr){ console.log(stderr); }
}
//this function merges wav/webm files function merge(response, files) { // detect the current operating system var isWin = !!process.platform.match( /^win/ );
}
function _upload(response, file) { var fileRootName = file.name.split('.').shift(), fileExtension = file.name.split('.').pop(), filePathBase = './public/upload/', fileRootNameWithBase = filePathBase + fileRootName, filePath = fileRootNameWithBase + '.' + fileExtension, fileID = 2, fileBuffer;
console.log("file path="+filePath); fs.writeFileSync(filePath, fileBuffer); }
// this function uploads files function upload(response, postData) { var files = JSON.parse(postData);
}
function hasMediaType(type) { var isHasMediaType = false; ['audio/wav', 'audio/ogg', 'video/webm', 'video/mp4'].forEach(function(t) { if(t===type) { isHasMediaType = true; } });
}
function serveStatic(response, pathname) {
exports.home = home; exports.upload = upload; exports.serveStatic = serveStatic;
end of handler.js
this is my merger.bat file code @echo off "C:\ffmpeg\bin\ffmpeg.exe" -itsoffset -00:00:00 -i %1 -itsoffset -00:00:00 -i %2 %3
for %%a in (".webm") do ffmpeg -i "%%a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "C:\Users\Vistasoft\Desktop\KVApp_update\public\upload\%%~na.mp4" pause
end of merger.bat
now i want to get and save mp4 file help us as soon as email : rahul.vistasoft@gmail.com