2

我正在使用 Meteor 和 CollectionFS 来存储视频。我需要一个转换来创建我的视频的缩略图。

Videos = new FS.Collection("videos", {
  stores: [
    new FS.Store.FileSystem("thumbs", { 
      transformWrite: function(fileObj, readStream, writeStream) {
        // What goes here?
      }
    }),
    new FS.Store.FileSystem("videos"),
  ],
});

我已经想出了如何用 ffmpeg 做到这一点:

ffmpeg -i video.mp4 -vf  "thumbnail,scale=640:360" -frames:v 1 thumb.png

但是我不确定如何使用给定的 readStream 来执行此操作并输出 writeStream。

这是一个如何使用 GraphicsMagick 处理图像的示例:

Images = new FS.Collection("images", {
  stores: [
    new FS.Store.FileSystem("thumbs", { 
      transformWrite: function(fileObj, readStream, writeStream) {
        // Transform the image into a 10x10px thumbnail
        gm(readStream, fileObj.name()).resize('10', '10').stream().pipe(writeStream);
      }
    }),
    new FS.Store.FileSystem("images"),
  ],
});

尽管示例使用本地文件系统,但我将使用 cvs:dropbox,因此您不能依赖本地文件。

4

0 回答 0