2016-10-19 80 views
3

在我的電子應用程序中,用戶可以使用MediaRecorder API從其攝像頭錄製視頻。將視頻blob保存到文件系統電子/節點js

當用戶點擊「停止記錄」按鈕,我得到了一個記錄視頻的斑點。

我想什麼做的是這個BLOB其轉換爲一個真正的WebM視頻和寫入到用戶的文件系統具有例如:

fs.writeFile(localdir + '\\video.webm', videoBlob); // does not work 

下面的例子非常有效使用Base64圖像抓拍,我從網絡攝像機獲取,但我無法使其與我得到的視頻blob一起工作。

謝謝賜教!

回答

0

您需要使用FileReader將blob內容作爲數組讀取,然後創建一個Buffer實例。

我不能讓音頻工作雖然:(

1

創建視頻斑點。chunks是event.data數組從MediaRecorder實例的ondataavailable

var blob = new Blob(chunks, { 
    type: 'video/webm' 
}) 

閱讀BLOB作爲ArrayBuffer,並用它來創建一個Buffer。將緩衝區保存爲一個文件。

var reader = new FileReader() 
reader.onload = function(){ 
    var buffer = new Buffer(reader.result) 
    fs.writeFile(path, buffer, {}, (err, res) => { 
     if(err){ 
      console.error(err) 
      return 
     } 
     console.log('video saved') 
    }) 
} 
reader.readAsArrayBuffer(blob) 
+0

我很困惑downvo在這裏測試。 –

+2

blob文件,它適用於我,很好的答案 –