const child_process = require('child_process')
let child = child_process.spawn('ffmpeg', [
'-f', 'image2pipe',
'-i', '-',
'-vcodec', 'libx264',
'-f', 'flv',
'rtmp://127.0.0.1:56413/live/test'
]);
child.stdout.on('data', function (data) {
console.log(data.toString());
});
child.stderr.on('data', function (data) {
console.log(data.toString());
});
child.on('close', (code, signal) => {
console.log('ffmpeg 进程中断', code, signal);
});
// 图片数据写入管道
function writeImg (base64) {
let imgData = Buffer.from(base64, 'base64')
child.stdin.write(imgData)
}
// 模拟循环获取图片数据
for (let i = 0; i < 100; i ++) {
writeImg('/9j/4AAQSkZJRgABAQAA........')
}
不知道有什么方法可以优化
1
codefredzeng 2022-07-11 01:27:38 +08:00
最先获取到的图片数据一定是 base64 吗?是不是可以考虑直接将图片的二进制数据喂给 ffmpeg ,不用经过 base64 转换?
|
2
yangheng4922 OP @codefredzeng #1 转格式这一步没啥问题 我这边是应用层 算法那边给的就是 base64 的
|