7

我正在开发一个使用 CollectionFS 上传文件的 Meteor 应用程序。

我能够上传和生成图像的缩略图。

但我的问题是:我应该如何为视频创建缩略图?

我可以看到可以通过命令行:https ://superuser.com/questions/599348/can-imagemagick-make-thumbnails-from-video

但是我怎样才能将它应用到我的 Meteor 代码中。

这是我正在做的事情:

VideoFileCollection = new FS.Collection("VideoFileCollection", {
stores: [
  new FS.Store.FileSystem("videos", {path: "/uploads/videos"}),
  new FS.Store.FileSystem("videosthumbs", {path: "/uploads/videosthumbs",
    beforeWrite: function(fileObj) {
      // We return an object, which will change the
      // filename extension and type for this store only.
      return {
        extension: 'png',
        type: 'image/png'
      };
    },
    transformWrite: function(fileObj, readStream, writeStream) {
      gm(readStream, fileObj.name()).stream('PNG').pipe(writeStream);

    }
  })
]
});

这里发生的情况是视频被上传到“videos”文件夹,并且在“videosthumbs”下创建了一个 0 字节的 PNG,并且没有生成缩略图。

我也读过:https ://github.com/aheckmann/gm#custom-arguments

我们可以使用: gm().command() - 自定义命令,例如识别或转换

有人可以建议我如何处理这种情况吗?

谢谢并恭祝安康

4

1 回答 1

1

检查了您添加的链接,这是一个可能对您有所帮助的粗略解决方案

ffmpeg -ss 600 -i input.mp4 -vframes 1 -s 420x270 -filter:v 'yadif' output.png

这是我制作的一个功能。

var im = require('imagemagick');

var args = [
    "ffmpeg", "-ss", "600", "-i", "input.mp4", "-vframes", " 1", "-s", "420x270", "-filter:v", "'yadif'", "output.png"
    ];

// Function to convert and 
im.convert(args, function(err) 
if (err) throw err;
});
于 2015-08-27T09:40:26.677 回答