当我尝试调用getChildren()
对mediapipeline
其中有我在它运行我得到这个例外,自定义模块端点:
org.kurento.client.internal.server.ProtocolException:为mycustomfilter.MyCustomFilter创建Java类的异常
这是触发它的代码:
List<MediaObject> mediaObjects = pipelines.get(i).getChildren();
Run Code Online (Sandbox Code Playgroud)
我是否必须转换List<MediaObject>
为其他一些数据类型?
无法在Ubuntu Linux 16.04中安装kurento-media-server-6.0,它总是显示依赖性问题,如下所示.
sudo apt-get install kurento-media-server-6.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
kurento-media-server-6.0 : Depends: kms-core-6.0 (>= 6.6.1) but it …
Run Code Online (Sandbox Code Playgroud) 如果我正在构建 WebRTC 应用程序并使用 Selective Forwarding Unit 媒体服务器,这是否意味着我将不需要 STUN / TURN 服务器?
据我了解,STUN 服务器用于客户端发现其公共 IP/端口,而 TURN 服务器用于在客户端无法通过 STUN 直接相互连接时在客户端之间中继数据。
我的问题是,如果我使用公共地址部署我的 SFU 媒体服务器,这是否消除了对 STUN 和 TURN 服务器的需求?由于数据将始终通过 SFU 中继,并且客户端/对等方实际上永远不会直接相互交谈?
但是,我注意到 Kurento(具有 SFU 功能的流行媒体服务器)的安装指南包含有关配置 STUN 或 TURN 服务器的部分。为什么需要 STUN 或 TURN 服务器?
我正在尝试运行Kurento WebRTC的Javascript录制示例,如下所示:
http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html
我在Ubuntu机器上安装了Kurento,运行正常.该服务也已启动.此外,我测试了基于Java的示例,它运行时没有任何问题.
js录制示例失败,出现以下错误:
混合内容:' https:// ABCDEF '页面是通过HTTPS加载的,但是尝试连接到不安全的WebSocket端点'ws:// XYZ:8433 /'.此请求已被阻止; 此端点必须通过WSS可用
我将ws_uri变量更改为指向安全的Web套接字:
ws_uri: 'wss://XYZ:8433',
Run Code Online (Sandbox Code Playgroud)
但是,我现在收到以下错误:
WebSocket connection to 'wss://XYZ:8433/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)
使用letsencrypt保护kurento服务器以通过HTTPS运行.我使用以下说明来保护服务器:
https://doc-kurento.readthedocs.org/en/latest/mastering/securing-kurento-applications.html
但是,在上面的示例中,它要求连接以下crt文件:
cat signing-ca.crt subordinate-ca.crt server.crt > server.pem
Run Code Online (Sandbox Code Playgroud)
我在这里很困惑,因为我找不到上面的文件.Letsencrypt为我生成以下.pem文件:
cert.pem,chain.pem,fullchain.pem,privkey.pem
是否应该在kurento.json.conf文件中使用上述文件之一?
Kurento有许多编写处理视频帧的kms滤波器模块的例子,但没有一个展示如何处理音频+视频.此外,kurento-module-scaffold.sh
似乎只生成接收a cv::Mat
或a的模块项目GstVideoFrame
.
Kurento本身说
作为差异化功能,Kurento Media Server还提供先进的媒体处理功能,包括计算机视觉,视频索引,增强现实和语音分析.
所以它似乎应该是可能的,但我看不出有任何方法来获取他们的API中的音频.
所以我的问题是:这可以做到吗?如果是这样,怎么样?
我们正在尝试与多个用户进行电话会议,因此通过使用 Kurento 服务器,我们已经实现了这一点,并且它可以在 safari 浏览器上运行。但是当涉及到WebView
/中的实现时WKWebView
。它甚至不请求许可。
@IBOutlet weak var webViewContainer: UIView!
var webView: WKWebView!
override open func loadView() {
super.loadView()
let webConfiguration = WKWebViewConfiguration()
webConfiguration.ignoresViewportScaleLimits = true
webConfiguration.suppressesIncrementalRendering = true
webConfiguration.allowsInlineMediaPlayback = true
webConfiguration.allowsAirPlayForMediaPlayback = false
webConfiguration.allowsPictureInPictureMediaPlayback = true
webConfiguration.mediaTypesRequiringUserActionForPlayback = .all
webConfiguration.requiresUserActionForMediaPlayback = true
webView = WKWebView(frame: webViewContainer.frame, configuration: webConfiguration)
webView.uiDelegate = self
webView.navigationDelegate = self
webView.sizeToFit()
webView.backgroundColor = .black
webView.isOpaque = false
self.webViewContainer.addSubview(webView)
}
func webContentController()-> WKUserContentController {
let contentController = WKUserContentController()
let script = …
Run Code Online (Sandbox Code Playgroud) 在 android 应用程序中,我有用户 webrtc 用于视频通话应用程序。
如果手机与 wifi 连接,则应用程序完美运行。
当我将 wifi 更改为移动数据并启动应用程序时,应用程序无法运行,也无法显示视频。
我的应用程序和服务器端 kurento 中有用户 webrtc。
下面是带有状态的场景列表:
我们已经为所有这些场景生成了检查候选,发现它们是相同的,唯一的区别是生成了多个候选。
我们有crate Turn 服务器以及 Stun,但视频无法在3g 连接的 android 客户端中显示。
任何人都有解决方案然后帮助我。 …
我在尝试用Webpack 2 + babel构建kurento-client-js时遇到错误.
WARNING in ./node_modules/kurento-client/lib/register.js
60:20-33 Critical dependency: the request of a dependency is an expression
Run Code Online (Sandbox Code Playgroud)
在执行时它会导致
Uncaught Error: Cannot find module "."
Run Code Online (Sandbox Code Playgroud)
我认为,这个问题本身是由сaused require
内/lib/register.js
//kurento-clinet/lib/register.js
if (constructor == undefined)
return register(require(name));
Run Code Online (Sandbox Code Playgroud)
以及导致错误的代码:
//kurento-clinet/lib/index.js
//this module requires kurento-client resulting in circular reference
register('kurento-client-core')
Run Code Online (Sandbox Code Playgroud)
kurento bower包包含使用browserify构建的分发版.
我想知道是否有人尝试kurento-client-js
使用webpack 构建.请分享您的经验.
编辑:
循环依赖错误堆栈跟踪:
Uncaught TypeError: Cannot read property 'MediaObject' of undefined
at Object._typeof (KurentoClient.js:42)
at __webpack_require__ (bootstrap 0d7eac46304670c5f3b5:19)
at Object._typeof (index.js:44)
at __webpack_require__ (bootstrap 0d7eac46304670c5f3b5:19)
at Object.module.exports …
Run Code Online (Sandbox Code Playgroud) 我使用 ffmpeg 将 rtp 流发送到 kurento 媒体服务器,然后通过 webrtc 将其发送到浏览器。
ffmpeg (h264 RTP) -> Kurento -> (h264 WebRTC) 浏览器
我正在捕获虚拟 xorg 显示。这是我的 ffmpeg 命令:
ffmpeg -y -v info -fflags +genpts -f x11grab -draw_mouse 0 -r 25 -s 1280x720 -thread_queue_size 4096 -i :0.0+0,0 -an -c:v libx264 -preset veryfast -crf 25 -g 50 -pix_fmt yuv420p -maxrate 2976k -bufsize 5952k -ssrc 112233 -payload_type 103 -tune zerolatency -f rtp rtp://172.16.1.115:40258
这是我在与 kurento RtpEndpoint 协商时使用的虚假 sdp 报价
v=0
o=- 0 0 IN IP4 127.0.0.1
s=Stream
c=IN …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用带有nodejs的Kurento媒体服务器录制视频.我一直在这里运行你好世界的例子.我将一个recorderEndpoint连接到webrtcEndpoint并且能够使整个事情运行但我在服务器上收到此错误消息:
0:37:59.122469563 7003 0xaf5500错误KurentoMediaPipelineImpl /build/buildd/kms-core-5.0.3/src/server/implementation/objects/MediaPipelineImpl.cpp:32:busMessage:总线错误:错误消息:0x7f11c0330ea0,时间99: 99:99.999999999,seq-num 514729,元素'kmsrecorderendpoint10',GstMessageError,gerror =(GError)NULL,debug =(string)"/ build/buildd/kms-elements-5.0.3/src/gst-plugins/kmsrecorderendpoint. c(876):\ sink_required_cb \():\/GstPipeline:pipeline8/KmsRecorderEndpoint:kmsrecorderendpoint10";
我不认为它的录音是正确的,但我不确定是什么问题.我能够运行原始示例,因此服务器很好.
代码在这里: