2015-08-27 75 views
7

我正在使用CollectionFS上傳文件的一個Meteor應用程序。Meteor.JS CollectionFS視頻圖像縮略圖(圖形Magick)

我可以上傳圖片並生成縮略圖。

但我的問題是:我應該如何爲視頻創建縮略圖?

我可以看到,它通過命令行是可能的:https://superuser.com/questions/599348/can-imagemagick-make-thumbnails-from-video

但我怎麼能將此我的流星代碼。

下面是我在做什麼:

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); 

    } 
    }) 
] 
}); 

正在發生的事情在這裏,視頻是越來越上傳到「視頻」文件夾下的「videosthumbs」 0字節和縮略圖創建一個PNG是沒有得到生成。

我也爲閱讀:https://github.com/aheckmann/gm#custom-arguments

,我們可以使用:GM()()的命令 - 自定義的命令,比如識別或轉換

任何人都可以告訴我什麼可以做,以處理這個情況?

感謝和問候

回答

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; 
}); 
+0

謝謝,我已經嘗試過了,但仍無法解決此問題 – Manu