Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2015, 16:37
Avatar de albert925
albert925
 
Fecha de Ingreso: mayo-2014
Ubicación: Colombia
Mensajes: 10
Antigüedad: 10 años
Puntos: 0
no dtecte la funcion en node.js con io.js

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
  1. "use strict"
  2. const os=require("os");//modulo nodejs aceso SO
  3. const fs=require("fs");//acceso archivos
  4. const path=require("path");//ruta archivos
  5. const async=require("async");
  6. const datauribuffer=require("data-uri-to-buffer");
  7. const uuid=require("uuid");
  8. const EventEmitter=require("events").EventEmitter;
  9. const listfiles=require("./lista.js");
  10. const ffmpeg=require('./ffmpeg.js');
  11. module.exports=function (images) {
  12.     let events=new EventEmitter();
  13.     let count=0;
  14.     let nombase=uuid.v4();
  15.     let tmpDir=os.tmpDir();
  16.  
  17.     async.series([
  18.         imagenescodificar,
  19.         crearvideo,
  20.         codificarvideo,
  21.         //limpieza
  22.     ],terminarconversion);
  23.  
  24.     function imagenescodificar (done) {
  25.         //eachSeries() por orden
  26.         async.eachSeries(images,decodeImage,done);
  27.     }
  28.     function decodeImage (image,done) {
  29.         let filename=`${nombase}-${count++}.jpg`;
  30.         let buffer= datauribuffer(image);
  31.         let ws=fs.createWriteStream(path.join(tmpDir,filename));
  32.         ws.on("error",done);
  33.         ws.end(buffer,done);
  34.  
  35.         events.emit("log","convertir "+filename);
  36.     }
  37.     // Creando video de images con ffmpeg
  38.     function crearvideo (done) {
  39.         events.emit('log', 'Creando video');
  40.         ffmpeg({
  41.             baseName:nombase,
  42.             folder:tmpDir
  43.         },done);
  44.     }
  45.     //convertir
  46.     function codificarvideo (done) {
  47.         done();
  48.     }
  49.     //limpieza disco duro de temporales
  50.     function limpieza (done) {
  51.         events.emit("log","Limpiando..");
  52.         listfiles(tmpDir,nombase,function (err,files) {
  53.             if (err) {return done(err)}
  54.             //borrado de archivos
  55.             deleteFIles(files,done);
  56.         });
  57.     }
  58.     function deleteFIles (files,done) {
  59.         async.each(files,borrfiles,done);
  60.     }
  61.     function borrfiles (file,done) {
  62.         events.emit("log","Borrando "+file);
  63.         fs.unlink(path.join(tmpDir,file),function (err) {
  64.             //ignoro el error
  65.             done();
  66.         });
  67.     }
  68.     function terminarconversion (err) {
  69.         setTimeout(function () {
  70.             events.emit("video","esto es el codec video");
  71.         },1000);   
  72.     }
  73.     return events;
  74. }

Archivo ffmpeg.js

Código Javascript:
Ver original
  1. "use strict"
  2. const os=require("os");
  3. const path=require("path");
  4. const spawn=require("child_process").spawn;
  5.  
  6. module.export=function (options,callback) {
  7.     if (!options.baseName) {
  8.         return callback(new TypeError("no has especificado el nombre base"));
  9.     }
  10.  
  11.     let folder=options.folder || os.tmpDir();
  12.     let baseName=options.baseName;
  13.     let fileSrc=path.join(folder,baseName+"-%d.jpg");
  14.     let fileDest=path.join(folder,baseName+".webm");
  15.  
  16.     //ffmpeg -i images-%d.jpg - filter:v "setpts=2.5*PTS" -vcoded libvpx -an video.webm
  17.     let ffmpeg=spawn("ffmpeg",[
  18.         "-i",
  19.         fileSrc,
  20.         "-filer:v",
  21.         "setpts=2.5*PTS",
  22.         "-vcoded",
  23.         "libvpx",
  24.         "-an",
  25.         fileDest
  26.     ]);
  27.     ffmpeg.stdout.on("close",function (code) {
  28.         if (!code) {
  29.             return callback(null);
  30.         }
  31.         callback(new Error("ffmpeg termino con el codigo "+code));
  32.     });
  33. }