Code Monkey home page Code Monkey logo

openvidu's Introduction

Backers on Open Collective Sponsors on Open Collective License badge OpenVidu Tests Npm version Npm downloads

Documentation Status Docker badge Support badge Twitter Follow

openvidu

Visit openvidu.io

Community Forum

Visit OpenVidu Community Forum

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! ๐Ÿ™ [Become a backer]

Acknowledgments

OpenVidu has been supported under project "CPP2021-008720 NewGenVidu: An elastic, user-friendly and privacy-friendly videoconferencing platform", funded by MCIN/AEI/10.13039/501100011033 and by the European Union-NextGenerationEU/PRTR.

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

openvidu's People

Contributors

cruizba avatar csantosm avatar cshanjib avatar dependabot[bot] avatar flamenco avatar gtunon avatar imyaro avatar j1elo avatar jenkinsopenvidu avatar melanef avatar micaelgallego avatar mihailj avatar monkeywithacupcake avatar mserve avatar nordri avatar orkhanalikhanov avatar oscarsotosanchez avatar pablofuente avatar pakio avatar pedro-sa-89 avatar rafaelrenanpacheco avatar ramiel avatar robert-scheck avatar semmel avatar slabajo avatar stavros-zavrakas avatar wm-david-gomez avatar zhilianggong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openvidu's Issues

How can I force other user in a session to unpublish or disconnect as MODERATOR role?

Hi, I have a problem forcing other user in a session to disconnect or unpublish as role MODERATOR.

According to openvidu-node-client API reference:

OpenViduRole
MODERATOR :  They can subscribe to published streams of other users, publish their own streams and forceย unpublish()ย andย disconnect()ย over a third-party stream or user

I am using openvidu-browser-js as client side.
I have set a user with MODERATOR role and got every connections to the session. But was unable to find any method to disconnect other non MODERATOR user.

I found dispose() method in connection object but it doen't seem to disconnect other non MODERATOR user.

Is there any way to do so as it seems possible according to the docs.

How to record local and remote videos?

Hi,

I'm new to OpenVidu and would like to record local and remote videos to separate files on my server where Kurento is installed.

Is this possible using OpenVidu?

Thanks in advance!

libopenh264.so.0 missing in openvidu-server-kms Docker image

The file libopenh264.so.0 is missing in the openvidu-server-kms Docker image. Without it kurento fails to support H264 and therefore Safari clients fail to connect. This again leads to the somewhat widespread error OperationError (DOM Exception 34): Expects at least 4 field which was originally fixed by installing openh264-gst-plugins-bad-1.5.

The reason for the lib missing is that the packages wget and bzip2 are missing. Without these the dependency openh264 of openh264-gst-plugins-bad-1.5 fails to download the shared library.

Adding the following line between lines 9 and 10 in openvidu/openvidu-server/docker/openvidu-server-kms/Dockerfile should fix this problem.

&& apt-get -y install wget bzip \

openvidu + react-native

Hi,
I found an open source project Echo
WebRTC and Kurento Media Server Integration Demo for React-Native
Is it possible to integrate to openvidu ?

Add custom stun and turn server

We wanted to add turn server to openvidu browser, but there seems to be no other way to do it without modifying the hardcoded list of stun/turn servers in included freeice module. Or is there better way?

recording sessions

Hi,
I'm considering diverse technologies to start a video call based project. I would like to know if recording video calls is already implemented or which is the state of its implementation (since this is crucial to the project). Thank you very much

OpenVidu issue with adding custom domain.

I am trying to install openvidu server using (aws deployment instructions)[http://openvidu.io/docs/deployment/deploying-aws/]. It is working fine when i am using selfassigned certificated. Steps what i did:

  • Created the openvidu selfassigned using cloudformation

  • Login to the instance and setup ssl using This Link

  • Create a subdomin on aws Route53 and configure the ssl. Link

  • But it still show the unsecure error (Reason: it point to the base url the openvidu cloudformation created). how i directly open the my custom domain so it doesn't show unsecure window.

what i have done till now:
  • try to add a custom domain with let's encrypt i.e digitaldot.io + elastic ip but it fails and rollback.
  • also try with the subdomin after associate that elastic ip to a subdomain and add subdomain to letsencrypt custom url

Thanks

Concat recording if file exist

Right now, if a session that is being recorded is empty (0 participants), and after a while a participant re-enters that session, the recording that was there is erased and starts from zero. It would be possible to have it concatenated if the file exists?

Select source stream

Hi,

i have some input video streams (webcam, hdmi, etc), so how can i select the source stream when call OV.initPublisher?, one is selected, but i don't know whats criterie is follow. Thank you again.

Regards,
Heri

How to room recording

In the Readme it says this project is a fork from Kurento Room I wanted to know, i f you guys have implemented room recording.

Request element 'typeOfVideo' is missing.

I am trying to do screen share using NodeJS(backend) and ReactJs(frontend) and it throw and error.
I am confused where to add this parameter.

Here is the full error message

Error #1

ERROR:java.lang.RuntimeException:Request element 'typeOfVideo' is missing in Request: method:publishVideo params:{"sdpOffer":"v=0\r\no=- 3309172586902494015 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video data\r\na=msid-semantic: WMS vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM\r\nm=audio 55878 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 192.168.8.100\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2901037939 1 udp 2122260223 192.168.8.100 55878 typ host generation 0 network-id 1 network-cost 50\r\na=candidate:3603154059 1 udp 2122194687 172.17.5.69 46972 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:+21O\r\na=ice-pwd:BpWfB3Q/dn9L+4d4wOm04eKa\r\na=ice-options:trickle\r\na=fingerprint:sha-256 8A:37:D8:A9:D8:08:26:AF:71:68:1F:CB:27:EC:94:15:F7:53:94:BB:AC:7A:95:8D:F5:DF:93:AC:37:0F:20:1B\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:2146590847 cname:Juh/tZCEMchdfeAY\r\na=ssrc:2146590847 msid:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM 9980a70c-9684-4978-a5a3-adb6509642ed\r\na=ssrc:2146590847 mslabel:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM\r\na=ssrc:2146590847 label:9980a70c-9684-4978-a5a3-adb6509642ed\r\nm=video 48433 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 125 127\r\nc=IN IP4 192.168.8.100\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2901037939 1 udp 2122260223 192.168.8.100 48433 typ host generation 0 network-id 1 network-cost 50\r\na=candidate:3603154059 1 udp 2122194687 172.17.5.69 47505 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:+21O\r\na=ice-pwd:BpWfB3Q/dn9L+4d4wOm04eKa\r\na=ice-options:trickle\r\na=fingerprint:sha-256 8A:37:D8:A9:D8:08:26:AF:71:68:1F:CB:27:EC:94:15:F7:53:94:BB:AC:7A:95:8D:F5:DF:93:AC:37:0F:20:1B\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=sendonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:102 red/90000\r\na=rtpmap:125 rtx/90000\r\na=fmtp:125 apt=102\r\na=rtpmap:127 ulpfec/90000\r\na=ssrc-group:FID 1421376676 299668970\r\na=ssrc:1421376676 cname:Juh/tZCEMchdfeAY\r\na=ssrc:1421376676 msid:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM 75289079-409b-4c34-9088-92a00be09d23\r\na=ssrc:1421376676 mslabel:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM\r\na=ssrc:1421376676 label:75289079-409b-4c34-9088-92a00be09d23\r\na=ssrc:299668970 cname:Juh/tZCEMchdfeAY\r\na=ssrc:299668970 msid:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM 75289079-409b-4c34-9088-92a00be09d23\r\na=ssrc:299668970 mslabel:vqpE1uZxPbRuW63RdW8nVScqg4fbP3xcM2HM\r\na=ssrc:299668970 label:75289079-409b-4c34-9088-92a00be09d23\r\nm=application 55103 DTLS/SCTP 5000\r\nc=IN IP4 192.168.8.100\r\na=candidate:2901037939 1 udp 2122260223 192.168.8.100 55103 typ host generation 0 network-id 1 network-cost 50\r\na=candidate:3603154059 1 udp 2122194687 172.17.5.69 58280 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:+21O\r\na=ice-pwd:BpWfB3Q/dn9L+4d4wOm04eKa\r\na=ice-options:trickle\r\na=fingerprint:sha-256 8A:37:D8:A9:D8:08:26:AF:71:68:1F:CB:27:EC:94:15:F7:53:94:BB:AC:7A:95:8D:F5:DF:93:AC:37:0F:20:1B\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","doLoopback":false,"audioActive":true,"videoActive":true} request:undefined

Error #2

jsonrpcclient.js:176 ERROR DATA:"java.lang.RuntimeException: Request element 'typeOfVideo' is missing\n\tat io.openvidu.server.rpc.JsonRpcUserControl.getStringParam(JsonRpcUserControl.java:233)\n\tat io.openvidu.server.rpc.JsonRpcUserControl.publishVideo(JsonRpcUserControl.java:114)\n\tat io.openvidu.server.RoomJsonRpcHandler.handleRequest(RoomJsonRpcHandler.java:93)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:128)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n"

Error #3

Error on publishVideo: {"code":-1,"message":"java.lang.RuntimeException:Request element 'typeOfVideo' is missing","data":"java.lang.RuntimeException: Request element 'typeOfVideo' is missing\n\tat io.openvidu.server.rpc.JsonRpcUserControl.getStringParam(JsonRpcUserControl.java:233)\n\tat io.openvidu.server.rpc.JsonRpcUserControl.publishVideo(JsonRpcUserControl.java:114)\n\tat io.openvidu.server.RoomJsonRpcHandler.handleRequest(RoomJsonRpcHandler.java:93)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:128)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n","requestTime":1515447125224

openvidu-browser 0.1.0 is broken

Hey,

Since version 0.1.0, this module is broken. I believe this is because the files needed to use it, such as lib/index.js does not exist.

Please let me know when this is fixed.

Thanks

Getting OpeningHandshakeException while using OpenVidu 2.0.0

The status code of the opening handshake response is not '101 Switching Protocols'. The status line is: HTTP/1.1 404

I'm using openvidu-android-app to access the OpenVidu Server 2.0.0, I've changed the port to 4443 in the android app but it shows that error.
It works fine by using OpenVidu Server 1.9.0 (port 8443).

Is there any other configurations need to be changed in the android app other than the port number?

Custom screen sharing chrome extension using

Hello!

I try to use my own chrome extension for screen sharing. I look here: https://github.com/OpenVidu/openvidu-screen-sharing-chrome-extension

and see that I have to specify my extension as parameter of OV.setAdvancedConfiguration function.

But there is no such function in openvidu-browser (I npm installed last version - 1.9.0)

AppComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: this.OV.setAdvancedConfiguration is not a function

Is docs correct, or I have to act other way?

What are the cases of corrupted video recording?

I have setup two openvidu servers on two different machines with same operating system. One is on public IP and another is inside VPN.

I am able to make a call using both setup.
But with openvidu-server on VPN I am getting corrupted video whereas on another I am getting proper recorded video.

Also another difference I can see is with proper recording i am getting recording .info file and with corrupted I am not getting any .info file.

I am using openvidu-server v2.0.0.

gitter.im chat for developers

Kindly create a room for openvidu developers in gitter.im which will encourage discussion among community and improve the software. There is no necessity for the core developers to be present but people who are familiar with the API can provide quick help.

Can't record screen share in openvidu 2.0

I setup openvidu following instructions here https://openvidu.io/docs/advanced-features/recording/ with this docker command

docker run -p 4443:4443 --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /tmp/openvidu:/tmp/openvidu \
    -e openvidu.recording=true \
    -e MY_UID=$(id -u $USER) \
    -e openvidu.recording.path=/tmp/openvidu \
    -e openvidu.recording.public-access=true \
openvidu/openvidu-server-kms:2.0.0

I then setup the openvidu-insecure-angular client following instructions here https://openvidu.io/docs/tutorials/openvidu-insecure-angular/ with these commands

git clone https://github.com/OpenVidu/openvidu-tutorials.git

I then edited app.component.ts so that the publisher properties looked like this for screen sharing:

	let publisher = this.OV.initPublisher(undefined, {
            audioSource: false, // The source of audio. If undefined default microphone
            videoSource: "screen", // The source of video. If undefined default webcam
            publishAudio: false,     // Whether you want to start publishing with your audio unmuted or not
            publishVideo: true,     // Whether you want to start publishing with your video enabled or not
            resolution: '640x480',  // The resolution of your video
            frameRate: 30,          // The frame rate of your video
            insertMode: 'APPEND',   // How the video is inserted in the target element 'video-container'
            mirror: false           // Whether to mirror your local video or not
          });

cd openvidu-tutorials/openvidu-insecure-angular
npm install
ng serve

I opened a chrome browser at https://localhost:4200 and joined a session where the screen sharing worked correctly and appeared in the correct HTML element however the openvidu/openvidu-recording docker container didn't get kicked off (as it did with openvidu 1.9)
I also edited line 85 of app.component.ts to the code below and tried the following for connecting to a session:

this.session.connect(token + '&recorder=true&secret=MY_SECRET', { clientData: this.myUserName })

This also didn't start the openvidu/openvidu-recording container.
Have I made a mistake in my configuration above or is this a bug in recording?
Thanks
Michael

How to proxy OpenVidu from Nginx correctly?

This is my nginx config which is acting as a websocket proxy to openvidu using url rewriting.

Majority users in our setup are under corporate firewall and can only access port 443 and 80. They cannot connect to websocket port 4443 hence need the proxy redirection.

My first question is can we run openvidu without SSL since nginx is terminating ssl anyway? -> I suspect this configuration will be slightly faster.

Secondly can we use a config similar to the following? I don't have it working. Getting HTTP 409 error.

proxy_pass https://127.0.0.1:4443;
OR
proxy_pass https://webrtc.vu2vu.org:4443;

server {
  server_name webrtc.vu2vu.org;
  root /srv/openvidu-tutorials/openvidu-insecure-js/web;

  location /mediaserver {
    rewrite /mediaserver(.*) /$1 break;
    proxy_pass https://webrtc.vu2vu.org:4443;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
  }

  listen 443 ssl;
  ssl_certificate /root/fullchain.pem;
  ssl_certificate_key /root/privkey.pem;
}

server {
  if ($host = webrtc.vu2vu.org) {
    return 301 https://$host$request_uri;
  }

  listen 80;
  server_name webrtc.vu2vu.org;
  return 404;
}

image

Can't add existing ICE candidates to null WebRtcEndpoint

I am modifying openvidu-android-app to allow the user to unpublish and publish the video again without leaving the room.
The problem that occurs to me is the user unable to publish the video again after unpublish, and OpenVidu Server shows the error "Can't add existing ICE candidates to null WebRtcEndpoint".

What I did to unpublish the video in the Android App is only sending the message "unpublishVideo" to OpenVidu Server.
Is there anything I've did wrong or I've missed any process to correctly unpublish the video?

Media stream error notifications

During our tests clients are freezing out. Accourding to our research it seems it could happen when client is using some kind of unstable network connection, like LTE. When the client disconnects even for a second, the media stream freezes. The problem is, that I don't get any notification from video element or openvidu about this incident. The websocket connection is going on, but video is frozen. And I can't react to this by reconnecting back, becaouse I am not notified about it. Is there any chance to detect that the media stream is broken?

Is this param wrong?

Hello! I found this line in createRoom(...) method of RoomManager. I have a question: why do you get Room from rooms to pass as param kcSessionInfo instead roomName?

...
    String roomName = kcSessionInfo.getRoomName();
    Room room = rooms.get(kcSessionInfo);
... 

However, in other cases you get Room from rooms by roomName.

Adding two publishers on a session

Was trying to add two publishers on a session like this,

var OV = new OpenVidu();
var session = OV.initSession(...);

var publisher = OV.initPublisher(...) // CAMERA 1
var publisher2 = OV.initPublisher(...)  // CAMERA 2

session.publish(publisher);
session.publish(publisher2);

When we call session.publish for publisher2, getting following exception stack,

Is there a way to make two publishers as two seperate endpoints of a session?

Exception stack from web console:

Stream.ts:452 Error on publishVideo: {"code":-1,"message":"org.kurento.client.internal.server.KurentoServerException:Endpoint already negotiated (Code:40208, Type:null, Data: {\"type\":\"SDP_END_POINT_ALREADY_NEGOTIATED\"})","data":"org.kurento.client.internal.server.KurentoServerException: Endpoint already negotiated (Code:40208, Type:null, Data: {\"type\":\"SDP_END_POINT_ALREADY_NEGOTIATED\"})\n\tat org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.sendRequest(RomClientJsonRpcClient.java:264)\n\tat org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.invoke(RomClientJsonRpcClient.java:117)\n\tat org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.invoke(RomClientJsonRpcClient.java:99)\n\tat org.kurento.client.internal.client.RomManager.invoke(RomManager.java:157)\n\tat org.kurento.client.internal.client.RemoteObject.invoke(RemoteObject.java:186)\n\tat org.kurento.client.internal.client.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:160)\n\tat org.kurento.client.internal.client.RemoteObjectInvocationHandler.internalInvoke(RemoteObjectInvocationHandler.java:129)\n\tat org.kurento.client.internal.client.DefaultInvocationHandler.invoke(DefaultInvocationHandler.java:39)\n\tat com.sun.proxy.$Proxy90.processOffer(Unknown Source)\n\tat io.openvidu.server.kurento.endpoint.MediaEndpoint.processOffer(MediaEndpoint.java:356)\n\tat io.openvidu.server.kurento.endpoint.PublisherEndpoint.publish(PublisherEndpoint.java:123)\n\tat io.openvidu.server.kurento.core.KurentoParticipant.publishToRoom(KurentoParticipant.java:187)\n\tat io.openvidu.server.kurento.core.KurentoSessionManager.publishVideo(KurentoSessionManager.java:214)\n\tat io.openvidu.server.rpc.RpcHandler.publishVideo(RpcHandler.java:178)\n\tat io.openvidu.server.rpc.RpcHandler.handleRequest(RpcHandler.java:67)\n\tat org.kurento.jsonrpc.internal.JsonRpcHandlerManager.handleRequest(JsonRpcHandlerManager.java:128)\n\tat org.kurento.jsonrpc.internal.server.ProtocolManager$3.run(ProtocolManager.java:218)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n","requestTime":1525930836795}
(anonymous) @ Stream.ts:452
(anonymous) @ jsonrpcclient.js:185
dispatchCallback @ index.js:614
processResponse @ index.js:745
RpcBuilder.decode @ index.js:806
transportMessage @ index.js:225
27jsonrpcclient.js:183 

Cannot install Openvidu for development

When I get to the step where I have to make /openvidu mvn compile -DskipTests=true

I get the next error:

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for io.openvidu:openvidu:1.0.0-beta.1: Could not find artifact org.kurento:kurento-parent-pom:pom:6.6.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 5, column 10
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project io.openvidu:openvidu:1.0.0-beta.1 (/home/ubuntu/java/openvidu/pom.xml) has 1 error
[ERROR] Non-resolvable parent POM for io.openvidu:openvidu:1.0.0-beta.1: Could not find artifact org.kurento:kurento-parent-pom:pom:6.6.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

I look for the package in Maven Central and erase the word -SNAPSHOT in the pom, but I don't know if it is good idea.

Re-Publish

Hi,

i wrote a application extrapoled from openvidu-insecure-js. In that application, there is a principal publisher (main speaker) and many subscribers. But sometime, any subcriber (client) can publish his own stream to interact with the speaker, so all the rest can view (receive) two stream; the main and the other one.

All work perfect, but when that client call unpublish method from session (without disconnect), and want to publish more late again, there are problems. The OpenVidu-KMS send log "Publisher succesfully published to session", but Stream.ts (line 632) show "Error setting SDP to the peer connection", and the other clients, show "jsonrpcclient.js:157 Exception processing request: {"method":"participantPublished","params":{"id":"bp917ok7b99pquf3m92au73elb","streams":[{"id":"webcam","audioActive":true,"videoActive":true}]}}" ... and the stream not showing. These problem only exploid when the same client has published, unpublished and then want to publish again. What can i do to solved?

Thank you very much for your awesome work.

Regards,
Heri

Getting wrong sessionID while using remote VM

Good day!
I deployed OpenVidu app using docker to Azure VM.
When i try to generate SessionId, i'm getting "wss://localhost:8443/i7kgub9b02dh95vfvgu5kg75rl",
which not work further on my app, because i didn't run OpenVidu server locally. How can I fix it?
I used this command
sudo docker run -d -p 8443:8443 -e openvidu.secret=YOUR_SECRET --net="host" openvidu/openvidu-server

I tried change --net to bridge, but it throws exception.

Custom messages

I am trying to replace KurentoRooms by Openvidu in my app. First: Nice work. It seems very promising.
But:

  1. I didn't find if and how I can send custom messages to clients over websocet connection. Is it possible? In kurento rooms there was event callback fot that purpose.
  2. ooou, i am stupid and forgot the second question during writing the first. ๐Ÿ˜„ I will ask when it comes back

Remote video Not Playing

I am trying to deploy the openvidu app on Ubuntu with native. After installation i am able to access openvidu dashboard https://173.212.233.93:8443/ following authorization details:

Username: OPENVIDUAPP

Password: MY_SECRET

when i run test it doesnot play remote video and is just loading loading loading... i try this test on my desktop with no camera and mircophone then all the test goes ok just in couple of sec.

Same in case of my application when i try to run my application it doesnot play the remote connected user video. But is shows that a new user join the sessison a new video element is created.

Thanks in advance. !

Getting ERRCONNRESET when hosting on Digital Ocean

I am using the openvidu-js-node tutorial. When I run it locally everything works fine even with the ssl certificates. But when I host it on digital ocean I am able to login the users publisher1,publisher2 and subscriber but after that when I try to start video session nothing happens and I get ERRCONNRESET on my node server at digital ocean.

Why ArchiveMode.MANUAL is also making a video record.

Hi I am using kms server with openvidu-node-client.

I am trying to record video manually.

    let properties = new SessionProperties.Builder().archiveMode(ArchiveMode.MANUAL).archiveLayout(ArchiveLayout.BEST_FIT).mediaMode(MediaMode.ROUTED).build();


    // Create a new OpenVidu Session
    let mySession = OV.createSession(properties);

Still I can find mp4 file in recorded video folder.

Using custom screen share plugin

Hi, i know we should not reinvent the wheel but i want to deploy my own chrome extention. I did that. I downloaded the source code of the screen share extention and make some changes i.e icon, name etc and re-uploaded that extention. Now when i try openvidu screen share it is asking for that perticular plugin. It is not considering my plugin.

RELAYED MediaMode

Hello!
First of all, thank you for your work! OpenVidu is great and beautiful! =)

Can you please tell, when "RELAYED MediaMode" feature planned to be implemented?

Openvidu is not processing ParticipantLeft event correctly

Some times when a user leaves openvidu session those streams are still available in the underlying object OV.openvidu.session.remoteStreams.

This is causing huge inconvenience since there is no data in those remote streams. Those connections are effectively dead peers.

The following example below has only one remote active stream which is marked with a pointer, rest all are displaying as empty boxes.

image

Messages like these are displayed on the console.
Exception processing request: {"method":"participantLeft","params":{"name":"9mywsdxjjak1zvrm"}}

Brainstrorming and possible solutions?

  • Is there a way to identify which of these remote streams are dead from API?
  • Can we some how instruct the server to remove those stale connections so that at least after browser refresh the issue goes away?

`getLocalStreams` deprecated in firefox

I get the following warning when running this library in firefox when use publisher.publishAudio:

RTCPeerConnection.getLocalStreams/getRemoteStreams are deprecated.
Use RTCPeerConnection.getSenders/getReceivers instead.

And publisher.publishAudio stops working when I try to remove/add tracks to mediastream

sessionid return `null/1biftlug3q11p9hbrps6i2kvs2`

Hi,
I just updated the 1.5.0, but returned after call getSessionId is null/1biftlug3q11p9hbrps6i2kvs2,

openvidu-browser: 1.5.0
openvidu/openvidu-server-kms: 1.5.0
openvidu-node-client: 1.1.0

Can you help me see what the problem is? Thank you very much

Getting blank video streams in production.

I deployed Openvidu-server over ubuntu 16.4 and used this guide : Openvidu server deployment over ubuntu

I was able to join session and can detect connectionCreated event and streamCreated event but cannot get a video (it is blank).

I have setup coturn server as described in deployment guide.
I also have conformed that required ports are not blocked by firewall.

My server computer is on Global Protect VPN. Similarly I can test my application on my local network and it is working fine.

I also came to know that some VPN blocks STUN or TURN protocal. But couldn't verify whether its working or not. The systemctl status of coturn.service is running.

What might have causing this issue?
stackoverflow question

Recording docker container not disposed properly

I run a container of the image "openvidu/openvidu-server-kms" as mentioned in http://openvidu.io/docs/advanced-features/recording/ . Then I create a session with a publisher and record image (openvidu/openvidu-recording) starts automatically, but when leave the session the record image dont stop, that cause the mkv record keep recording.

I tested locally, launching openvidu-server with intellij. I follow the same previous steps, create a session with a published, openvidu-record starts automatically, but when leave the session, the record image stops.

It's possible that the problem be the "openvidu/openvidu-server-kms" image, that don't dispose the "openvidu-recording" image when leave the session?

Issue reaching the rest api

locally I have openvidu/openvidu-server-kms running, dockerized along with a few other services, like a backend to help me manage a few things. I'm having trouble connecting to openvidu's and kurento's api.

part of docker-compose.yml:

services:
  #workspace
  workspace:
    build: workspace/.
    volumes:
      - ./workspace:/var/www
      - composer:/root/.composer
    links:
      - redis
      - mysql
      - openvidu-server-kms
    depends_on:
      - redis
      - mysql
      - openvidu-server-kms
  #openvidu
  openvidu-server-kms:
   image: openvidu/openvidu-server-kms:1.7.0
   ports:
     - 8443:8443
   environment:
     - KMS_STUN_IP=stun.l.google.com
     - KMS_STUN_PORT=19302
     - openvidu.secret=MY_SECRET
     - openvidu.publicurl=docker
   expose:
      - "8443"
      - "8888"
      - "80"

When I follow the docs (https://openvidu.io/docs/reference-docs/REST-API/)
I set the endpoint(http://openvidu-server-kms/api/sessions), along with the headers and a body, it says 'Connection refused',
I also tried switching to 9091 to access kurento, but that seemed to be a websocket connection.

Is there something I'm missing?

jks issues

i have created jks file using crt and key as per procedure but still ssl is not valid where on other application its fine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.