我无法让图像叠加显示在环回视频上。我可以使用 rtpEndpoint.connect(rtpEndpoint, function....)
对脚本进行环回,但是当我尝试添加 ImageOverlayFilter 时,出现了一些我无法解决的错误。
错误:“MediaType”的值无效
“错误”:{“代码”:40001,“数据”:{“类型”:“MARSHALL_ERROR”},“消息”:“'MediaType'的值无效”}
var overlayparams = {
id: "TESTTEST",
uri: "file://tmp/media/sample.png",
offsetXPercent: 0,
offsetYPercent: 0,
widthPercent: 0,
heightPercent: 0,
keepAspectRatio: true,
center: true,
mediaPipeline: pipeline
}
pipeline.create("ImageOverlayFilter", overlayparams, function (error, filter) {
if (error) return console.log(">>>>>"+ error);
return callback(null, rtpEndpoint, filter);
});
稍后在文件中
rtpEndpoint.connect(rtpEndpoint, imageOverlay, rtpEndpoint, function (error) {
if (error) return onError(error);
console.log("Added overlay to loopback");
});
/*
// This works for normal loopback
rtpEndpoint.connect(rtpEndpoint, function (error) {
if (error) return onError(error);
console.log("loopback works");
});
*/
我也尝试过使用 filter.addVideo 方法而不是 overlayparams 对象,但它产生了相同的结果。
最佳答案
更新!
假设 imageoverlayfilter 与 Kurento 中的 faceoverlayfilter 类似,则引用的文件必须是 http(s) url。如果您在本地存储文件,则需要使用网络服务器为它们提供服务器或远程托管它们。
所以,而不是...
“文件://tmp/media/sample.png”
取决于您拥有 http(s) 服务器根目录的位置,您将拥有...
“https://localhost/tmp/media/sample.png ”
另请注意,在 kurento 6.11 之前确认 imageoverlay 过滤器存在问题。最新的是6.13所以它可以解决...
https://github.com/Kurento/bugtracker/issues/350
除了上面描述的更改之外,您还可以尝试使用下面的代码将 FaceOverlayFilter 替换为 ImageOverlayFilter 并将 setOverlayedImage 替换为 addImage,因为这两个过滤器的用法和实现几乎相同。
所以换...
pipeline.create("FaceOverlayFilter", (error, faceOverlayFilter) => {
if (error) {
return callback(error);
}
// This adds the Mario hat
faceOverlayFilter.setOverlayedImage(
url.format(asUrl) + "img/mario-wings.png",
-0.35,
-1.2,
1.6,
1.6,
function(error) {
if (error) {
return callback(error);
}
return callback(null, webRtcEndpoint, faceOverlayFilter);
}
);
});
至...
pipeline.create("ImageOverlayFilter ", (error, ImageOverlayFilter ) => {
if (error) {
return callback(error);
}
// This adds the image
ImageOverlayFilter .addImage (
"https://localhost/tmp/media/sample.png",
0,
0,
0,
0,
true,
true
function(error) {
if (error) {
return callback(error);
}
return callback(null, webRtcEndpoint, ImageOverlayFilter );
}
);
});
关于node.js - 环回上的 Kurento 媒体管道覆盖图像不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60232249/