Hola. Estoy viendo un curso de io.js y estoy aplicando con el curso paso a paso, pero en una parte no me detecta el modulo exportado me sale el mensaje error como: ffmpeg is not a function. La ruta está bien, no se cual es el error, si pueden ayudarme encontrar el error? muestro los dos archivos del código. Muchas gracias por su colaboración.
Archivo video.js
Código Javascript
:
Ver original"use strict"
const os=require("os");//modulo nodejs aceso SO
const fs=require("fs");//acceso archivos
const path=require("path");//ruta archivos
const async=require("async");
const datauribuffer=require("data-uri-to-buffer");
const uuid=require("uuid");
const EventEmitter=require("events").EventEmitter;
const listfiles=require("./lista.js");
const ffmpeg=require('./ffmpeg.js');
module.exports=function (images) {
let events=new EventEmitter();
let count=0;
let nombase=uuid.v4();
let tmpDir=os.tmpDir();
async.series([
imagenescodificar,
crearvideo,
codificarvideo,
//limpieza
],terminarconversion);
function imagenescodificar (done) {
//eachSeries() por orden
async.eachSeries(images,decodeImage,done);
}
function decodeImage (image,done) {
let filename=`${nombase}-${count++}.jpg`;
let buffer= datauribuffer(image);
let ws=fs.createWriteStream(path.join(tmpDir,filename));
ws.on("error",done);
ws.end(buffer,done);
events.emit("log","convertir "+filename);
}
// Creando video de images con ffmpeg
function crearvideo (done) {
events.emit('log', 'Creando video');
ffmpeg({
baseName:nombase,
folder:tmpDir
},done);
}
//convertir
function codificarvideo (done) {
done();
}
//limpieza disco duro de temporales
function limpieza (done) {
events.emit("log","Limpiando..");
listfiles(tmpDir,nombase,function (err,files) {
if (err) {return done(err)}
//borrado de archivos
deleteFIles(files,done);
});
}
function deleteFIles (files,done) {
async.each(files,borrfiles,done);
}
function borrfiles (file,done) {
events.emit("log","Borrando "+file);
fs.unlink(path.join(tmpDir,file),function (err) {
//ignoro el error
done();
});
}
function terminarconversion (err) {
setTimeout(function () {
events.emit("video","esto es el codec video");
},1000);
}
return events;
}
Archivo ffmpeg.js
Código Javascript
:
Ver original"use strict"
const os=require("os");
const path=require("path");
const spawn=require("child_process").spawn;
module.export=function (options,callback) {
if (!options.baseName) {
return callback(new TypeError("no has especificado el nombre base"));
}
let folder=options.folder || os.tmpDir();
let baseName=options.baseName;
let fileSrc=path.join(folder,baseName+"-%d.jpg");
let fileDest=path.join(folder,baseName+".webm");
//ffmpeg -i images-%d.jpg - filter:v "setpts=2.5*PTS" -vcoded libvpx -an video.webm
let ffmpeg=spawn("ffmpeg",[
"-i",
fileSrc,
"-filer:v",
"setpts=2.5*PTS",
"-vcoded",
"libvpx",
"-an",
fileDest
]);
ffmpeg.stdout.on("close",function (code) {
if (!code) {
return callback(null);
}
callback(new Error("ffmpeg termino con el codigo "+code));
});
}