原始h264到GIF节点js

时间:2018-09-02 20:13:30

标签: javascript node.js npm raspberry-pi node-modules

我正在尝试使用正在运行的“ pi-camera”库,并允许我在r-pi上以原始h264格式录制视频。但是,节点js库“ gifify”连续不断地向我显示错误“ RangeError:超出最大调用堆栈大小”,查找该错误似乎与多次调用函数中的多个函数或与此相关。但是,我的代码仅使用一个函数,其中包含一个简单的命令来拍摄视频,然后将其转换。

const PiCamera = require('pi-camera');
var fs = require('fs');
var gifify = require('gifify');
var path = require('path');
var sleep = require('system-sleep');
const myCamera = new PiCamera({
  mode: 'video',
  output: `/home/pi/Videos/video.h264`,
  width: 640,
  height: 480,
  time: 5000, 
  nopreview: true,
  vflip: true,
});
var input = path.join('/home/pi/Videos', 'video.h264');
var output = path.join('/home/pi/Videos', 'daily.gif');
var gif = fs.createWriteStream(output);
var options = {
  speed: 5,
  text: 'Daily Plant GIF'
  };
sleep(5000);
setInterval(vid, 10000);
function vid(){
myCamera.record()
  .then((result) => {
    console.log('success');
gifify(input, options).pipe(gif); 
  })
  .catch((error) => {
     console.log(error);
  });
}

有关此错误在此情况下真正意味着什么/如何解决的任何信息,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

错误不仅与您的代码有关,而且还与您正在使用的库有关。

我看到有关gifyfy的报告“至少超过最大堆栈数”的问题至少有几次 打开一个: https://github.com/vvo/gifify/issues/94

我不确定您的情况是否有任何解决方法。也许您需要尝试不同的参数或寻找不同的库