2012-10-26 68 views
6

正在建設有node.js的一個應用程序,我成功上傳視頻,但我需要爲它生成一個視頻縮略圖,目前我使用節點exec來EXCUTE的ffmpeg系統命令,使縮略圖如何在node.js中生成視頻縮略圖?

exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name + " -ss 00:01:00.00 -r 1 -an -vframes 1 -f mjpeg Video/" + Name + ".jpg") 

這個代碼是從一個教程來從http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumable-video-uploade-in-node-js/

上面的代碼並生成一個JPG文件,但它不是一個縮略圖,但視頻截屏,我不知道還有什麼其他方法來生成視頻縮略圖,或如何執行的是ffmpeg的命令做一個真正thumbanil(調整大小),我更喜歡PNG文件,請幫助!

回答

1

通過向您的命令添加-s widthxheight選項來調整大小。

+0

以及它的工作原理,但是這是要做到這一點的唯一途徑,我的意思是我真的必須使用EXEC,有一個節點模塊來處理這個問題 – paynestrike

1

有這個節點模塊: video-thumb

它基本上只是包裝調用exec FFmpeg的

8

Reference to GitHub fluent-ffmpeg project

重複例如從original StackOverflow answer

var proc = new ffmpeg('/path/to/your_movie.avi') 
    .takeScreenshots({ 
     count: 1, 
     timemarks: [ '600' ] // number of seconds 
    }, '/path/to/thumbnail/folder', function(err) { 
    console.log('screenshots were saved') 
    }); 
+0

什麼'數:1'這裏? – vineet

+0

引用文檔:「count:指定要生成的縮略圖數量。使用此選項時,視頻中會定期生成縮略圖(例如,在請求視頻的25%,50%和75%的3個縮略圖時長度)。指定時間標記或時間戳時忽略count。「 – Risadinha

+0

可以將/path/to/your_movie.avi作爲網址嗎? – Andrea

0

相反,我會建議使用thumbsupply。除了爲您提供縮略圖之外,它還可以緩存它們以顯着提高性能。

npm install --save thumbsuppply 

安裝模塊後,您可以按以下方式使用它。

const thumbsupply = require('thumbsupply')("com.example.application"); 

thumbsupply.generateThumbnail('some-video.mp4') 
.then(thumb => { 
    // serve thumbnail 
})