ウェブアプリケーションとデスクトップからデータを記録している電子アプリケーションを作成しています。記録セッションの最後に、データをバックグラウンドでファイルに保存します。私はブロブからファイルに直接データを書き込む方法を知らない。助言がありますか? 以下はMediaRecord Stopイベントの現在の処理です。電子アプリケーション内のブロブからディスクにファイルを書き込む
this.mediaRecorder.onstop = (e) => {
var blob = new Blob(this.chunks,
{ 'type' : 'video/mp4; codecs=H.264' });
var fs = require('fs');
var fr = new FileReader();
var data = null;
fr.onload =() => {
data = fr.result;
fs.writeFile("test.mp4", data, err => {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
};
fr.readAsArrayBuffer(blob);
}
少し遅れて申し訳ありません。しかし、今日まであなたの解決策を試す時間はありませんでした。それはうまくいきます、ありがとう。 出力ファイルにもう1つ問題があります。ビデオプレーヤーで再生しようとすると、ビデオの長さが正しく表示されず、1秒のビデオしか表示されず、1秒でビデオが完全に再生されます。しかし、もし私が何を意味しているのか分かっていれば、私はビデオを送り返すことはできません。 – silentnights
はい私は同じ問題があります。なぜそれがこのようなのか分かりません。コーデックとその再生に精通している人は、それを説明することができます。私は最終的にmp4にffmpegを使って再レンダリングして、それを正しく表示します。 – Danteinus
継続時間の問題はMediaRecorderの問題です。 ffmpegを使用してトランスコードする場合は、それ自体を修正する必要があります。 –