Fiware 主机上没有使用kurento docker映像和kurento hello world示例的远程流

Fiware 主机上没有使用kurento docker映像和kurento hello world示例的远程流,fiware,kurento,Fiware,Kurento,我在我的服务器上安装了KMS容器,并在我的服务器上下载了kurento hello world java应用程序,但当我使用服务器IP地址访问java web应用程序时,我必须进行远程流传输,并出现以下错误(在firefox中): 在about:webrtc中,它告诉我没有指定STUN和no TURN服务器(我不太清楚下面的许多输出),问题是我在WebRtcEndpoint.conf.ini上指定了一个STUN服务器 这是我的docker-compose.yml文件: kurento: imag

我在我的服务器上安装了KMS容器,并在我的服务器上下载了kurento hello world java应用程序,但当我使用服务器IP地址访问java web应用程序时,我必须进行远程流传输,并出现以下错误(在firefox中):

在about:webrtc中,它告诉我没有指定STUN和no TURN服务器(我不太清楚下面的许多输出),问题是我在WebRtcEndpoint.conf.ini上指定了一个STUN服务器

这是我的docker-compose.yml文件:

kurento:
image: fiware/stream-oriented-kurento:latest
volumes:
    - ./kurento.conf.json:/etc/kurento/kurento.conf.json:ro
    - ./defaultCertificate.pem:/etc/kurento/defaultCertificate.pem:ro
    - ./WebRtcEndpoint.conf.ini:/etc/kurento/modules/kurento/WebRtcEndpoint$
ports:
    - "8888:8888"
    - "8433:8433"
这是我的kurento.conf.json文件:

{
"mediaServer" : {
"resources": {
//  //Resources usage limit for raising an exception when an object creatio$
//  "exceptionLimit": "0.8",
//  // Resources usage limit for restarting the server when no objects are $
//  "killLimit": "0.7",
    // Garbage collector period in seconds
    "garbageCollectorPeriod": 240
},

    "net" : {
  "websocket": {
    "port": 8888,
    "secure": {
      "port": 8433,
      "certificate": "defaultCertificate.pem",
      "password": ""
    },
    //"registrar": {
    //  "address": "ws://localhost:9090",
    //  "localAddress": "localhost"
    //},
    "path": "kurento",
    "threads": 10
      }
    }
  }
}
以及我的WebRtcEndpoint.conf.ini

; Only IP address are supported, not domain names for addresses
; You have to find a valid stun server. You can check if it works
; usin this tool:
;   http://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 
stunServerAddress=62.71.2.168
stunServerPort=3478

; turnURL gives the necessary info to configure TURN for WebRTC.
;    'address' must be an IP (not a domain).
;    'transport' is optional (UDP by default).
; turnURL=user:password@address:port(?transport=[udp|tcp|tls])

;pemCertificate is deprecated. Please use pemCertificateRSA instead
;pemCertificate=<path>
;pemCertificateRSA=<path>
;pemCertificateECDSA=<path>
我继续验证证书

当我用docker compose启动kurento容器时,我可以在日志上看到我的conf.文件已加载:

kurento_1           |             "websocket":
kurento_1           |             {
kurento_1           |                 "port": "8888",
kurento_1           |                 "secure":
kurento_1           |                 {
kurento_1           |                     "port": "8433",
kurento_1           |                     "certificate": 
"defaultCertificate.pem",
kurento_1           |                     "password": ""
kurento_1           |                 },
kurento_1           |                 "path": "kurento",
kurento_1           |                 "threads": "10"
kurento_1           |             }

我以以下内容开始hello world示例:

sudo mvn compile exec:java -Dkms.url=wss://localhost:8433/kurento
在这一点上,一切似乎工作正常,没有错误输出

当我尝试使用https://:8443从客户端访问我的web应用程序时,网页已正确加载并可以启动流。但是我没有远程流,并且在开始时打印了错误

更新1

我将docker-compose.yml中kurento图像的版本从

image: fiware/stream-oriented-kurento:latest
致:

而现在它有时也在起作用。我也有同样的错误(ICE失败,请参阅about:webrtc了解更多详细信息),但是如果我多次重新加载页面,它会在重新加载后工作。有没有关于我做错了什么的建议

更新2

我意识到当web应用程序开始工作时(在多次重新加载之后),下次我访问web应用程序时,它将一直工作,直到我重新启动KMS。然后,我必须再次多次重新加载页面,以获得远程流


现在我意识到了这一点,我再次尝试使用image:fiware/stream-oriented kuranto:latest,它的行为完全相同。我必须多次重新加载页面才能使其正常工作。我不知道这是为什么,有什么想法吗?

看看你的问题,我觉得ICE候选人在双方都没有被正确创建

您是否在webApplication(JS)中配置了眩晕/翻转? 如果您没有修改示例,我相信它们在默认情况下没有配置

检查options.configuration。例如:

var options  = {
        ........ some options here .... 
        configuration: { 
               iceServers:[{ 
                       "url": "turn:xxx.xxx.xxx:port", 
                       "username": "xxxxxx", 
                       "credential": "xxxxxx" 
              }] 
        } 
webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options,<callback-here>);
var选项={
……这里有一些选择。。。。
配置:{
ICEServer:[{
“url”:“turn:xxx.xxx.xxx:port”,
“用户名”:“xxxxxx”,
“凭证”:“xxxxxx”
}] 
} 
webRtcPeer=new kurentutils.webRtcPeer.webrtpeersendrecv(选项,);
您能提供Firefox ICE候选版本和KMS ICE版本的日志吗

此外,KMS是否与本教程在同一台机器上启动和运行

  • 有关hello world中使用的kurento_utils的更多信息:
  • Web客户端上的STUN的WebRTC配置的一般示例:

研究您的问题,我觉得ICE候选方案在双方都没有被正确创建

您是否在webApplication(JS)中配置了眩晕/翻转? 如果您没有修改示例,我相信它们在默认情况下没有配置

检查options.configuration。示例:

var options  = {
        ........ some options here .... 
        configuration: { 
               iceServers:[{ 
                       "url": "turn:xxx.xxx.xxx:port", 
                       "username": "xxxxxx", 
                       "credential": "xxxxxx" 
              }] 
        } 
webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options,<callback-here>);
var选项={
……这里有一些选择。。。。
配置:{
ICEServer:[{
“url”:“turn:xxx.xxx.xxx:port”,
“用户名”:“xxxxxx”,
“凭证”:“xxxxxx”
}] 
} 
webRtcPeer=new kurentutils.webRtcPeer.webrtpeersendrecv(选项,);
您能提供Firefox ICE候选版本和KMS ICE版本的日志吗

此外,KMS是否与本教程在同一台机器上启动和运行

  • 有关hello world中使用的kurento_utils的更多信息:
  • Web客户端上的STUN的WebRTC配置的一般示例:
image: fiware/stream-oriented-kurento:latest
image: fiware/stream-oriented-kurento:6.6.0
var options  = {
        ........ some options here .... 
        configuration: { 
               iceServers:[{ 
                       "url": "turn:xxx.xxx.xxx:port", 
                       "username": "xxxxxx", 
                       "credential": "xxxxxx" 
              }] 
        } 
webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options,<callback-here>);