2013-04-28 38 views
0

我正在嘗試使用模塊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 

之後,我增加了超時但不知何故,它只在我重新加載頁面時開始。但當然由於頁面重新加載而立即停止。我是否需要爲轉碼文件創建單獨的節點服務器?或者是否有某種我需要觸發的事件?

我可能錯過了一些簡單的東西,但我似乎無法得到它的工作。 希望有人能指出我錯過了什麼。

謝謝

回答

1

我已經通過使用videoJs而不是Flowplayer修復了它。流式播放機的啓動方式在我的情況下無法正常工作。因此,我初始化流,然後初始化videojs以顯示流。這很好。

相關問題