Open smaznet opened 5 years ago
hi i used this code to make a red picture movie but not working
const beamcoder = require("beamcoder"); let fs = require("fs"); (async function(){ let outFile = fs.createWriteStream("./out3.mp4"); let encParams = { name: "libx264rgb", width: 400, height: 400, bit_rate: 2000000, time_base: [1, 25], framerate: [25, 1], gop_size: 10, max_b_frames: 1, pix_fmt: "rgb24", priv_data: {preset: "slow"} }; let endcode = Buffer.from([0, 0, 1, 0xb7]); let encoder = await beamcoder.encoder(encParams); for(let i = 0; i < 30; i++){ let frame = beamcoder.frame({ width: encParams.width, height: encParams.height, format: encParams.pix_fmt }).alloc(); let ydata = frame.data; frame.pts = i; for(let y = 0; y < frame.height; y++){ for(let x = 0; x < frame.width; x++){ let offset = 3 * (x + (y * frame.width)); ydata[offset + 0] = 255; ydata[offset + 1] = 0; ydata[offset + 2] = 0; } } let packets = await encoder.encode(frame); if(i % 10 === 0) console.log("Encoding frame", i); packets.packets.forEach(x => outFile.write(x.data)); } let p2 = await encoder.flush(); console.log("Flushing", p2.packets.length, "frames."); p2.packets.forEach(x => outFile.write(x.data)); outFile.end(endcode); })();
hi i used this code to make a red picture movie but not working