我正在嘗試使用模塊node-fluent-ffmpeg(https://github.com/schaermu/node-fluent-ffmpeg)對視頻文件進行轉碼和流式傳輸。由於我在Windows機器上,我首先從官方網站下載了FFMpeg(http://ffmpeg.zeranoe.com/builds/)。然後,我提取文件夾C:/ FFmpeg中的文件,並將路徑添加到系統路徑(精確到bin文件夾)。我通過在命令提示符下輸入來檢查FFmpeg是否工作:ffmpeg -version。它給了一個成功的迴應。使用node-fluent-ffmpeg在Windows不能正常工作的情況下使用ffmpeg進行代碼轉換
之後,我繼續和複製/從模塊(https://github.com/schaermu/node-fluent-ffmpeg/blob/master/examples/express-stream.js)改變了下面的代碼:
app.get('/video/:filename', function(req, res) {
res.contentType('avi');
console.log('Setting up stream')
var stream = 'c:/temp/' + req.params.filename
var proc = new ffmpeg({ source: configfileResults.moviepath + req.params.filename, nolog: true, timeout: 120, })
.usingPreset('divx')
.withAspect('4:3')
.withSize('640x480')
.writeToStream(res, function(retcode, error){
if (!error){
console.log('file has been converted succesfully',retcode);
}else{
console.log('file conversion error',error);
}
});
});
我已經正確設置客戶端的Flowplayer並試圖讓它運行,但 沒有任何反應。我檢查了控制檯,它說:
file conversion error timeout
之後,我增加了超時但不知何故,它只在我重新加載頁面時開始。但當然由於頁面重新加載而立即停止。我是否需要爲轉碼文件創建單獨的節點服務器?或者是否有某種我需要觸發的事件?
我可能錯過了一些簡單的東西,但我似乎無法得到它的工作。 希望有人能指出我錯過了什麼。
謝謝