我有一个从客户端到服务器的webrtc视频流。 我想将流转换为jpg图像,但不将任何图像保存到磁盘(仅从内存工作)。 目前我正在使用此命令行函数(从节点js调用):
var ops = [
'-i', '-',
'-f', 'image2',
'-vcodec', 'mjpeg',
'-b:v', '1000k',
'-q:v', '2',
'-s', '640x480',
'-updatefirst', '1',
'-',
];
ffmpeg_process = cp.spawn('ffmpeg', ops);
ffmpeg_process.stdout.on('data', function(chunk) {
var size = chunk.length
data += chunk
if (((chunk[size - 2] << 8) + chunk[size - 1]) === 65497) //EOF
{
if (data)
{
lib.addFrame(Buffer(data).toString('base64')) //full jpg data
}
data = ''
}
};
但是,某些输出jpg图像已损坏。这是因为有时缓冲区只包含部分jpg图像数据。
正确创建jpg图像需要传递给ffmpeg的正确参数是什么?
答案 0 :(得分:0)
我不太记得,但是shinobiCE对此情况有一些代码。你可以看看这是一个巨大的项目,祝您好运!