addLayer:function (input, output, layer, posLayer) { try { var process = new ffmpeg(input); process.then(function (video) { var loading = ""; var sec = 0; console.log(" ▼ Starting ▼ "); var bar = setInterval(function(){ console.log(" ... "+loading); loading = loading + " . "; },100); var seconds = setInterval(function(){ sec++; },1000); // Callback mode video.fnAddWatermark(layer, output, { position : 'SE'//posLayer }, function (error, file) { if (!error) console.log('New video file: ' + file); clearInterval(bar); clearInterval(seconds); console.log("It took "+sec+" seconds."); }); }, function (err) { console.log('Error: ' + err); }); } catch (e) { console.log(e.code); console.log(e.msg); } },
var WaterMarker = function(options) { try { var ffmpegProcess = new ffmpeg(options.videoFilePath); console.log('Loading video...'); ffmpegProcess.then( function(video) { console.log('Video ready! Processing now...'); var settings = { position: 'SE', margin_nord: null, margin_sud: null, margin_east: null, margin_west: null }; var callback = function(error) { if (error) { throw new exceptions.WaterMarkException(error); } else { console.log('Done.'); process.exit(0); } }; var extension = path.extname(options.videoFilePath); if (!options.outputFilePath) { options.outputFilePath = [ 'output-', (new Date()).getTime(), extension ].join(''); } video.fnAddWatermark( options.watermarkFilePath, options.outputFilePath, settings, callback ); }, function(err) { throw new exceptions.WaterMarkException(); } ); } catch (e) { throw new exceptions.WaterMarkException(e); } }
var capture=function(user, link){ var stream = ytdl(link); stream.pipe(fs.createWriteStream('temp.flv')); var process = new ffmpeg(path.resolve('temp.flv')); process.then(function (video) { // Callback mode console.log(video); video.fnExtractSoundToMP3('sound.mp3', function (error, file) { if (!error) console.log('Audio file: ' + file); }); }); return {'user':user}; };
function transcode(filename,cb) { try { var out_filename = filename + '-360.avi'; if (fs.existsSync(out_filename)){ console.log('deleting file',out_filename); fs.unlinkSync(out_filename); } var process = new ffmpeg(filename); process.then(function(video) { console.log('starting transcoding of file ',filename); console.log(video.metadata); video // .setVideoSize('?x480', true, false) .setVideoSize('?x360', true, false) .setVideoDuration(10) // .setAudioCodec('libfaac') // .setVideoCodec('mpeg4') // .setVideoFormat('avi') // .setVideoBitRate(1024) // .setAudioCodec('flv1') // .setAudioChannels(2) .save(out_filename, function(error, file) { if (error) { console.log(error); } if (!error) { console.log('saved transcoded file:',file); if (cb) cb(); } }); }, function(err) { console.log('Error: ' + err); }); } catch (e) { console.log(e.code); console.log(e.msg); } }
var im = require('imagemagick'); im.convert(['-delay','200','-size','640x480','p5_webcam/assets/logo.jpg','p5_webcam/assets/mary.jpg','-loop','0','animation.gif'], function(err, stdout){ if (err) throw err; console.log('stdout:', stdout); }); var ffmpeg = require('ffmpeg'); try { var process = new ffmpeg('animation.gif'); process.then(function (video) { video .addCommand('-f','gif') .save('animation.mp4', function (error, file) { console.log(error); if (!error) console.log('Video file: ' + file); }); }, function (err) { console.log('Error: ' + err); }); } catch (e) { console.log(e.code); console.log(e.msg); }