openvidu / openvidu-tutorials Goto Github PK
View Code? Open in Web Editor NEWOpenVidu tutorials to get started
Home Page: http://openvidu.io/tutorials
License: Apache License 2.0
OpenVidu tutorials to get started
Home Page: http://openvidu.io/tutorials
License: Apache License 2.0
I run openvidu/server and KMS with single docker container.
I install coturn on my cent os 7 .
This is my command :
docker run -d --net="host" -e openvidu.secret=YOUR_SECRET -e openvidu.publicurl=https://MY_IP:4443 -e openvidu.cdr=true -e server.port=4443 -e KMS_STUN_IP=MY_IP -e KMS_STUN_P|
ORT=19302 -e KMS_TURN_URL=myuser:mypass@MY_IP:3478 --rm -v /var/run/docker.sock:/var/run/docker.sock -v /var/kurento/rec:/var/kurento/rec -e openvidu.recording=true -e MY_UID=$(id -u $USER) -e openvidu.|
recording.path=/var/kurento/rec -e openvidu.recording.public-access=true openvidu/openvidu-server-kms:latest
I run also coturn but with default certification.
Node.js server for recording activated with no problem for desktop browsers everything works fine.
Everything works fine except safari mobile :
Err in browser :
WebSocket network error: The operation couldn’t be completed. (OSStatus error -9807.)
I found that 9807 describe cert chain .
It is very strange for one browser to allow without alert prompt access to the self sign cert site. I say yes but wss coming with problem.
Any suggestion.
I am also interest to know is turn_server.key/crt and openvidu cert for node.js server to different or must be the same certification ?
And did i need to enter in docker container to make some changes about CRT...
I want to use selfSign cert is not problem for development time.
I also try to add this args but with this configuration nothing works:
-e server.ssl.key-store=/var/kurento/node-server/YOUR_KEYSTORE_NAME.jks -e server.ssl.key-store-password=123456 -e server.ssl.key-alias=YOUR_KEYSTORE_ALIAS openvidu/openvidu-server-kms:latest
condition:
1.xcode 10.2
2.ios 12.1
Is there any support for swift 4.0 or above now?
I use this:
OV.initPublisher('html-element-id', { screen: true });
but i can't share screen.I use firefox.
I am trying to follow the hello world tutorial but I have a cors issue and I am not able to find something in the tutorial about that. This is the tutorial that I am following: https://openvidu.io/docs/tutorials/openvidu-hello-world/
I am able to access the openvidu server (https://localhost:4443) login with my secret and test the connection.
I was able to start the openvidu server successfully I am able to fire the POST /api/sessions request and I can see that the response is generated on the openvidu server:
2018-05-30 11:11:24,265 DEBG 'kms' stdout output:
0:20:04.507731532 8 0x7f57b0001830 DEBUG KurentoWebSocketTransport WebSocketTransport.cpp:422:processMessage: Message: {"id":138,"method":"ping","jsonrpc":"2.0","params":{"sessionId":"1c211ea2-d4b0-4a0c-bf8f-bd543d5792fe"}}
0:20:04.507828568 8 0x7f57b0001830 INFO KurentoServerMethods ServerMethods.cpp:795:ping: WebSocket Ping/Pong with sessionId 1c211ea2-d4b0-4a0c-bf8f-bd543d5792fe
0:20:04.507923951 8 0x7f57b0001830 DEBUG KurentoWebSocketTransport WebSocketTransport.cpp:424:processMessage: Response: {"id":138,"jsonrpc":"2.0","result":{"sessionId":"1c211ea2-d4b0-4a0c-bf8f-bd543d5792fe","value":"pong"}}
The problem is that the browser rejects the request because of cors issue:
- POST https://localhost:4443/api/sessions 401 ()
- (index):1 Failed to load https://localhost:4443/api/sessions: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 401.
Is there a place to configure the different acceptable origins?
This is how I start the openvidu server:
docker run -p 4443:4443 --rm -e openvidu.secret=secret openvidu/openvidu-server-kms
Hi,
Could you provide the documentation for this.
Hi OpenVidu team, Thank you for your great work!
Now I'm trying the tutorial[ openvidu-js-node
] but it's not working.
It's able to logged in, but not able to join
.
The following is occuring error on server.js
.
vagrant@vagrant-ubuntu-trusty-64:~/workspace/openvidu-tutorials/openvidu-js-node$ node server.js localhost:4443 MY_SECRET
App listening on port 5000
Logging in | {user, pass}={publisher1, pass}
'publisher1' has logged in
Getting a token | {sessionName}={Session 7}
New session Session 7
Writable {
_writableState:
WritableState {
objectMode: false,
highWaterMark: 16384,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0,
corkedRequestsFree: CorkedRequest { next: null, entry: null, finish: [Function] } },
writable: true,
domain: null,
_events:
{ response: [Function: handleResponse],
error: [Function: handleRequestError] },
_eventsCount: 2,
_maxListeners: undefined,
_options:
{ protocol: 'https:',
maxRedirects: 21,
maxBodyLength: 10485760,
path: 'https://localhost:4443/api/sessions',
method: 'post',
headers:
{ Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json',
Authorization: 'Basic T1BFTlZJRFVBUFA6TVlfU0VDUkVU',
'User-Agent': 'axios/0.18.0',
'Content-Length': 129,
host: 'localhost:4443' },
agent: undefined,
auth: undefined,
hostname: '192.168.56.1',
port: '3128',
host: '192.168.56.1',
nativeProtocols: { 'http:': [Object], 'https:': [Object] },
pathname: 'https://localhost:4443/api/sessions' },
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 129,
_requestBodyBuffers:
[ { data: <Buffer 7b 22 6d 65 64 69 61 4d 6f 64 65 22 3a 22 52 4f 55 54 45 44 22 2c 22 72 65 63 6f 72 64 69 6e 67 4d 6f 64 65 22 3a 22 4d 41 4e 55 41 4c 22 2c 22 64 65 ... >,
encoding: undefined } ],
_onNativeResponse: [Function],
_currentRequest:
ClientRequest {
domain: null,
_events:
{ response: [Object],
socket: [Function],
abort: [Function],
aborted: [Function],
error: [Function],
timeout: [Function] },
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
upgrading: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedHeader: { 'content-length': false },
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: false,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: null,
npnProtocol: null,
alpnProtocol: null,
authorized: false,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 10,
connecting: false,
_hadError: true,
_handle: null,
_parent: null,
_host: null,
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 396,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: false,
parser: null,
_httpMessage: [Circular],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
connection:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: false,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: null,
npnProtocol: null,
alpnProtocol: null,
authorized: false,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 10,
connecting: false,
_hadError: true,
_handle: null,
_parent: null,
_host: null,
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 396,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: false,
parser: null,
_httpMessage: [Circular],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
_header: 'POST https://localhost:4443/api/sessions HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json\r\nAuthorization: Basic T1BFTlZJRFVBUFA6TVlfU0VDUkVU\r\nUser-Agent: axios/0.18.0\r\nContent-Length: 129\r\nhost: localhost:4443\r\nConnection: close\r\n\r\n',
_headers:
{ accept: 'application/json, text/plain, */*',
'content-type': 'application/json',
authorization: 'Basic T1BFTlZJRFVBUFA6TVlfU0VDUkVU',
'user-agent': 'axios/0.18.0',
'content-length': 129,
host: 'localhost:4443' },
_headerNames:
{ accept: 'Accept',
'content-type': 'Content-Type',
authorization: 'Authorization',
'user-agent': 'User-Agent',
'content-length': 'Content-Length',
host: 'host' },
_onPendingData: null,
agent:
Agent {
domain: null,
_events: [Object],
_eventsCount: 1,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object],
requests: {},
sockets: [Object],
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
maxCachedSessions: 100,
_sessionCache: [Object] },
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: 'https://localhost:4443/api/sessions',
_ended: false,
_redirectable: [Circular],
parser: null },
_currentUrl: 'https://192.168.56.1/https://localhost:4443/api/sessions' }
Error: [object Object]
at /home/vagrant/workspace/openvidu-tutorials/openvidu-js-node/node_modules/openvidu-node-client/lib/Session.js:417:28
Please tell me how I should do.
Best regards.
condition:
1.xcode 10
2.ios 12.1
when i running the demo os macos with the real iphone device,according the introduction url :https://openvidu.io/docs/demos/openvidu-call-ionic/
the app can run,and join the sessions.
but it only can see itself, and the other port like web or andorid devices could't see the iphone audio.
i search the xcode debug message, find the info below:
2019-02-20 16:54:40.450876+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 扬声器 (type: Speaker)
2019-02-20 16:54:40.452222+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 接收器 (type: Receiver)
2019-02-20 16:54:40.452510+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 接收器 (type: Receiver)
2019-02-20 16:54:40.552818+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 接收器 (type: Receiver)
2019-02-20 16:54:40.553857+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 接收器 (type: Receiver)
2019-02-20 16:54:40.554043+0800 OpenVidu Ionic[20539:7038971] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port 接收器 (type: Receiver)
by the way,the web and android devices port work well.
Hello there, Our AWS deployed demos are working successfully and we want to add recording feature in Basic Videoconference app.
For that there is a POST request to /api/sessions in app.js
Currently it is sending :
data: JSON.stringify({ customSessionId: sessionId})
as data and i edited it to:
data: JSON.stringify({ customSessionId: sessionId , recordingMode: "ALWAYS" })
But saw no difference, Docker is installed in server and i started the server with following comand also to enable recording:
java -jar -Dserver.ssl.enabled=false -Dopenvidu.publicurl=MY_AWS_URL:4443 -Dopenvidu.recording=true -Dopenvidu.recording.path=/var/www/html/recordings -Dserver.port=5443 /opt/openvidu/openvidu-server.jar
and got output recorder installed but no recordings are saving in given path.
and there is file named openvidu-browser-2.8.0.js
in same folder
in this file there is a option this.recorder = false;
on line 3423
. i set it to true but after setting app throwing debugger error and pausing so i set it to false again.
Also, i checked recordings in /opt/openvidu/recordings
but is empty.
Can you please help me on this so that i can get recordings.
Thanks
I have Coturn Server and Openvidu server in Public network,but my client in private network,what's should I do?How do I configure coturn server on the client side?
Hi,
Recently, I have upgraded Openvidu Server 1.7 to 1.9.0-beta-1.
And I am using Openvidu-mvc-java, deployed in Ubuntu 16.04 with KMS 6.7 and Coturn.
Added the Openvidu-browser-1.9.0-beta-1.js in Openvidu-mvc-java "static" folder.
Changed the version in session.html
Changed openvidu-java-client to 1.8.0 in pom.xml.
Clean compile and package and run.
I am able to get the client side and remote videos in Chrome, Mozilla, Safari 11.0.1 in HighOS Sierra.
But the same not working for iphone Safari 11.0.3, checked in iphone 7 and 10.
So, is there anyother change, specific to get this in iPhone?
Hi.
My transmissions are of INDIVIDUAL form, but when the users close badly the transmission does not generate the zip of the recording, in this occasion I can not obtain the JSON that is generated to look for the video
Currently the saved recording is individually, I am recording the screen and audio using Nodejs and angular 7.
i am getting [406: the session has no connected participants] after starting video recording api in android phone using openvidu-ionic
Can Openvidu-ionic realize the communication between Android and browser? Why can't the browser subscribe to the stream published by Android, Android seems to be able to subscribe to the stream published by the browser, but it can't be displayed, only the participant name Participant0
Hello,
I would like to know if it is possible to run this demo without running the docker container.
Thank you in advance.
Alex.
When I updated OpenVidu 2.0.0, below error occurred from openvidu-tutorials/openvidu-insecure-angular. A docker image for OpenVidu Server 2.0.0 already pulled. The docker image, which is OpenVidu server & kurento media server, can't receive any request from angular web application as press the join session button.
ERROR
Error
columnNumber: 31
fileName: "https://localhost:4200/vendor.js"
lineNumber: 105321
message: "Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":null,"ok":false,"name":"HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown Error","error":{"isTrusted":true}}"
promise: Object { __zone_symbol__state: 0, __zone_symbol__value: {…} }
rejection: Object { status: 0, statusText: "Unknown Error", ok: false, … }
stack: "resolvePromise@https://localhost:4200/vendor.js:105321:31\nresolvePromise@https://localhost:4200/vendor.js:105278:17\nscheduleResolveOrReject/<@https://localhost:4200/vendor.js:105380:17\n./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invokeTask@https://localhost:4200/vendor.js:104928:17\nonInvokeTask@https://localhost:4200/vendor.js:36079:24\n./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invokeTask@https://localhost:4200/vendor.js:104927:17\n./node_modules/zone.js/dist/zone.js/</Zone.prototype.runTask@https://localhost:4200/vendor.js:104695:28\ndrainMicroTaskQueue@https://localhost:4200/vendor.js:105102:25\n./node_modules/zone.js/dist/zone.js/</ZoneTask.invokeTask@https://localhost:4200/vendor.js:105007:21\ninvokeTask@https://localhost:4200/vendor.js:106047:9\nglobalZoneAwareCallback@https://localhost:4200/vendor.js:106073:17\n"
task: Object { runCount: 0, _state: "notScheduled", type: "microTask", … }
zone: Object { _properties: {…}, _parent: {…}, _name: "angular", … }
proto: Object { … }
core.js:1598
defaultErrorLogger
core.js:1598
./node_modules/@angular/core/fesm5/core.js/ErrorHandler.prototype.handleError
core.js:1647
next
core.js:4727:74
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.subscribe/schedulerFn<
core.js:3712:34
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.__tryOrUnsub
Subscriber.js:253
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.next
Subscriber.js:191
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype._next
Subscriber.js:129
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype.next
Subscriber.js:93
./node_modules/rxjs/_esm5/internal/Subject.js/Subject.prototype.next
Subject.js:53
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.emit
core.js:3704:52
onHandleError/<
core.js:4084:48
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invoke
zone.js:388
./node_modules/zone.js/dist/zone.js/</Zone.prototype.run
zone.js:138
./node_modules/@angular/core/fesm5/core.js/NgZone.prototype.runOutsideAngular
core.js:4021
onHandleError
core.js:4084
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.handleError
zone.js:392
./node_modules/zone.js/dist/zone.js/</Zone.prototype.runGuarded
zone.js:154
_loop_1
zone.js:677
./node_modules/zone.js/dist/zone.js/</</api.microtaskDrainDone
zone.js:686
drainMicroTaskQueue
zone.js:602
./node_modules/zone.js/dist/zone.js/</ZoneTask.invokeTask
zone.js:500
invokeTask
zone.js:1540
globalZoneAwareCallback
zone.js:1566
ERROR
Object { headers: {…}, status: 0, statusText: "Unknown Error", url: null, ok: false, name: "HttpErrorResponse", message: "Http failure response for (unknown url): 0 Unknown Error", error: error }
core.js:1598
defaultErrorLogger
core.js:1598
./node_modules/@angular/core/fesm5/core.js/ErrorHandler.prototype.handleError
core.js:1647
next
core.js:4727:74
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.subscribe/schedulerFn<
core.js:3712:34
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.__tryOrUnsub
Subscriber.js:253
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.next
Subscriber.js:191
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype._next
Subscriber.js:129
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype.next
Subscriber.js:93
./node_modules/rxjs/_esm5/internal/Subject.js/Subject.prototype.next
Subject.js:53
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.emit
core.js:3704:52
onHandleError/<
core.js:4084:48
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invoke
zone.js:388
./node_modules/zone.js/dist/zone.js/</Zone.prototype.run
zone.js:138
./node_modules/@angular/core/fesm5/core.js/NgZone.prototype.runOutsideAngular
core.js:4021
onHandleError
core.js:4084
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.handleError
zone.js:392
./node_modules/zone.js/dist/zone.js/</Zone.prototype.runTask
zone.js:191
./node_modules/zone.js/dist/zone.js/</ZoneTask.invokeTask
zone.js:496
ZoneTask/this.invoke
zone.js:485
timer
I'm trying to record my stream and I've come across this line number 275 and 278 here
the session object passed in the OV.startRecording()
is from the client side.
and here in the docs of the recording node ref sheet the session id is from OV.createSession()
.
so, what's the difference between them? which one should choose to get the session ID, because when I used the OV.createSession()
's session ID, I got 404 error , which according to the docs and I quote 404: no session exists for the passed sessionId .
so this means that I should use the client's session ID?
if so then what's the use of server side session?
a side node, I noticed that
Recording.OutputMode.INDIVIDUAL
andRecordingMode.ALWAYS
doesn't work, the error says that cannot get INDIVIDUAL of undefined, I explicitly passed string 'INDIVIDUAL' and 'ALWAYS'.
any guesses on both of the errors?
What is the version of Android that Openvidu-ionic requires?
I deploy openvidu-server-kms in remote server and I deploy tutorial openvidu-insecure-js in my local computer, the result is that I can just access local web page, but can not see any streaming video properly. Is there anything shoud I modify?
Do you plan to add docker deployment as production ones in subsequent releases?
I deployed OpenviduServer on the Ubuntu of the private network in the way of official deployment.If my client is connected on the private network, if my client is not connected on the public network, what's the reason? Is coturn not working? What should I do?
Hi
I want to destroy another user session in webcomponent with a button. How can i do this?
Me again ,
please give me some suggestion !
I wanna run recording example . I use https://localhost:5000/ and stream woks fine.
ON REC :
I got Start recording WRONG: HTTP 400 (422) .
In console log :
Failed to load resource: the server responded with a status of 400 (Bad Request) app.js:234 Start recording WRONG (400) processRequest @ app.js:234 app.js:235 422
I run docker with :
docker run -p 4443:4443 --rm -e openvidu.secret=MY_SECRET -e openvidu.publicurl=https://localhost:4443/ --rm -v /var/run/docker.sock:/var/run/docker.sock -v /Users/nikola/Desktop/rec:/Users/nikola/Desktop/rec -e openvidu.recording=true -e MY_UID=$(id -u $USER) -e openvidu.recording.path=/Users/nikola/Desktop/rec -e openvidu.recording.public-access=true openvidu/openvidu-server-kms:2.8.0
And node.js with :
node local.js https://localhost:4443 MY_SECRET
I catch logs from openvidu server :
2019-02-26 09:35:32,538 DEBG 'openvidu-server' stdout output: [INFO] 2019-02-26 09:35:32,535 [-4443-exec-6] io.openvidu.server.rest.SessionRestController (startRecordingSession) - REST API: POST /api/recordings/start {session=gfzqgewtlzpojzmm, name=, outputMode=COMPOSED, hasAudio=false, hasVideo=false, resolution=1920x1080, recordingLayout=BEST_FIT}
i already done chmod -R 777 PATH .
Important also on public server i have recording but always black screen !
I found this : "Well, 1 CPU and 1 GB of RAM is definetly not a place where to deploy any kind of Media Server solution, that's for sure."
1 CPU and 1GB ram I guest it is not enough even for one single connection.
Is it ok to use smallest resolution like 240×320 . and frame rate 15 ?
I found :
var publisher = OV.initPublisher('video-container', {
audioSource: undefined, // The source of audio. If undefined default microphone
videoSource: undefined, // The source of video. If undefined default webcam
publishAudio: true, // 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: '320x240', // 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
});
What mean's "resolution: '320x240'," , is it only for recording or webRTC stream works with this parameter. I don' see any changes on screen after changing.
Hi,
I set up an openvidu-mvc-node environment with version 2.4.0, it works well bonth in PC chrome and Mac chrome, but saddly it doesn't work in iPhone safari and iPad safari. Actually I debugged the codes in iPad safari and I found out the below variable mediaStream is undefined (in file openvidu-browser-2.4.0.js line number 5150), and I can get a successfuly mediaStream in PC chome, it seems that we can't get remote stream from peerConnection in iPad safari.
Stream.prototype.remotePeerSuccessfullyEstablished = function () {
**this.mediaStream = this.webRtcPeer.pc.getRemoteStreams()[0];**
console.debug('Peer remote stream', this.mediaStream);
if (!!this.mediaStream) {
this.ee.emitEvent('mediastream-updated');
if (!this.displayMyRemote() && !!this.mediaStream.getAudioTracks()[0] && this.session.speakingEventsEnabled) {
this.enableSpeakingEvents();
}
}
};
I also tried another demo following this tutorils: https://apple.openvidu.io/ , this demo works fine both in iPad and iPhone safari, do you know anything different between the tow demos? Is there any specail configuration I need to know? Advanced thanks for your help.
Hi,
In my debug build it is working fine with live streams but with --prod --release build it gives blank white screen while creating streams.
Please help what should I change/update.
Thanks.
Hello!
I was trying to install react native tutorial project dependencies and I'm not able to do that. I've just cloned repo from https://openvidu.io/docs/tutorials/openvidu-react-native/
and I receiving a lot of error messages about operating system permission issues trying to execute npm install. I run this command via node.js command prompt as administrator.
--
My setup:
Node: v10.16.0
react-native-cli: 2.0.1
Windows 10
Ubuntu installed since amazon container did not complete install
openvidu-mvc-node works on all devices so I tried the recording tutorial now
docker installed with docker daemon running
kurento server running
started openvidu with:
java -jar -Dopenvidu.recording=true -Dopenvidu.recording.path=/home/path/to/videofiles -Dopenvidu.recording.free-access=true -Dopenvidu.secret=[MY_SECRET]-Dopenvidu.publicurl=https://[myweb.site]:8443/ -Dserver.ssl.key-store=[/path/to/keystore.jks] -Dserver.ssl.key-store-password=[mykspass] -Dserver.ssl.key-alias=[myksalias] openvidu-server-1.9.0.jar &
ran the nodejs:
node server.js [myweb.site]:8443 [MY_SECRET]
I can see/hear other streams and they can see/hear
but when I click record :
Start recording WRONG: HTTP 400 (500)
console gives me:
Request URL: https://[myweb.site]:5000/api/recording/start
Request Method: POST
Status Code: 400 Bad Request
Remote Address: [myip]:5000
Referrer Policy: no-referrer-when-downgrade
When i click on start button, getting exception message as " The certificate of the peer does not match the expected hostname" on android device
Hii
I am using these dependencies
"axios": "^0.19.0",
"openvidu-browser": "^2.11.0",
"openvidu-node-client": "^2.11.0",
"react": "16.8.6",
"react-native": "0.60.5",
"react-native-webrtc": "^1.75.0"
My code is App.js
https://gist.github.com/rizwan92/52ad61f28a97059d074eee8982e67408
I am facing this problem path does not exist in line number 25.
I tried installing react-native-webrtc by running command npm install react-native-webrtc --save
then I replaced line number 25
from
import { RTCView } from "./node_modules/openvidu-browser/node_modules/react-native-webrtc";
to
import { RTCView } from "react-native-webrtc";
then it is throwing an exception
ExceptionsManager.js:86 TypeError: Cannot read property 'transform' of undefined
This error is located at:
in RTCVideoView (at App.js:318)
in RCTView (at View.js:35)
in View (at App.js:313)
in RCTView (at View.js:35)
in View (at App.js:312)
in RCTView (at View.js:35)
in View (at ScrollView.js:1007)
in RCTScrollView (at ScrollView.js:1147)
in ScrollView (at App.js:310)
in App (at renderApplication.js:40)
in RCTView (at View.js:35)
in View (at AppContainer.js:98)
in RCTView (at View.js:35)
in View (at AppContainer.js:115)
in AppContainer (at renderApplication.js:39)
at line number 203
I tested with two devices using Chrome, both from the same network and from different networks, and with both clients connected you can only see your own camera. I am able to reproduce this on all hosted demos:
I am seeing that when I generate the ios platform the swift version that it uses is swift 3, however, the latest version of Xcode (Xcode 10.2.1 onwards) does not have support for swift 3.
Is it possible to make the ionic openvidu project generate the platform with swift 4 or higher?
After executing the instructions in the running this tutorial section here https://openvidu.io/docs/tutorials/openvidu-insecure-react/
When I open the website and click join to start the video conferencing, I got this error
Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID
App.js:294 Uncaught (in promise) TypeError: Cannot read property 'status' of undefined
at App.js:294
Maybe the certificates on the server running in the docker container is expired?
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.
I use “this.recordingMode = RecordingMode.ALWAYS;” in openvidu-java-client(openvidu-js-java), and it can work. There was a problem when I left the room. The log was "Waiting for container to be launched..." and the recording container did not stop.
log.txt
OpenviduIonic与浏览器视频通讯无法获取视频画面
All works well
like:localhost:4200
:localhost:4443
:myIp:4443(test runs fine),
but when i do (myIP:4200) the console shows:
'Connection' created (local),
New video element associated to Publisher {videos: Array(2), lazyLaunchVideoElementCreatedEvent: false, ee: EventEmitter, stream: Stream, remote: false, …}
accessAllowed: false
accessDenied: true
canPlayListener: ƒ ()
ee: EventEmitter
_events: {accessDenied: Array(0), accessDialogOpened: Array(0)}
proto: Object
isSubscribedToRemote: false
lazyLaunchVideoElementCreatedEvent: false
openvidu: OpenVidu {publishers: Array(1), secret: "", recorder: false, advancedConfiguration: {…}, webrtcStatsInterval: 0, …}
permissionDialogTimeout: 14
properties: {audioSource: undefined, frameRate: 30, insertMode: "APPEND", mirror: false, publishAudio: true, …}
remote: false
session: Session {streamManagers: Array(1), remoteStreamsCreated: {…}, isFirstIonicIosSubscriber: true, countDownForIonicIosSubscribers: true, remoteConnections: {…}, …}
stream: Stream {ee: EventEmitter, isSubscribeToRemote: false, isLocalStreamReadyToPublish: false, isLocalStreamPublished: false, publishedOnce: false, …}
videos: (2) [{…}, {…}]
proto: StreamManager
All this happens but the Publisher's not published to session.
I like the idea of openvidu but looking through the code examples as well as the api code, i see they both have very bad quality. That leads me to the question if I can trust the api as well for building a high quality product.
Openvidu-ionic可以实现安卓端与浏览器通讯吗?为什么浏览器端无法订阅到安卓端发布的流,安卓端似乎可以订阅到浏览器发布的流,但无法展示出来,只有参与者名称Participant0
When trying out https://openvidu.io/docs/tutorials/openvidu-js-java/
it works on one local PC,
but when opening on other PC https://192.x.x.x:5000/, the login page will show up, and logged OK, but on "Join a video session" pressing green Join has no effect.
Using Firefox on Windows 10.
So effectively I cannot try 2 person conferencing
I'm trying to deploy OpenVidu on AWS following the following tutorial: https://openvidu.io/docs/deployment/deploying-aws/
It completes successfully but when I try to connect to the openvidu dashboard to test it with the websiteUrl from the Output Tab, and enter the default username and password, "OPENVIDUAPP" and "MY_SECRET", It keeps on asking me for the username and password. And doesn't navigate me to the dashboard.
Any help would be appreciated.
hi
others can internet this web,but can not join .
i can internet this web ande join.
why?
thank you.
While wss://
is great, it may not always be a requirement, especially in on-prem setups involving a Proxy/FW that does security with its own set of a certs etc.
When we build --prod and deploy in firebase https://webrtc-5f0f0.firebaseapp.com it gives problem
problem in use openvidu-ionic, i found that iphone's front camera and back camera can not be swithed. it default in use front camera,so how can i switch to the front camera,can someone help me?
I have updated to Openvidu 2.0.0. In your MVC Java tutorial, when you join a session, a token is generated like so: String token = session.generateToken(tokenOptions);
. The token generated is in this form: 0a4b8d8ikdo53wsl, 73hmvkapoe2ztgtm,...
Then the client code takes that token and connects to the session like so:
session.connect(token, metadata).then(...).catch(...)
I got an error with that though:
After some digging around I am led to believe it's because of Session.prototype.processToken, which has this line: var url = new URL(token)
, which supposedly throws an error because the token received isn't an url?
My Openvidu server has been functioning well before I upgrade my code to 2.0.0. When this error happens, the server does not receive any event.
I think I am most likely missing something, so if you will clarify this for me I'll be most grateful.
What's wrong? Am i avoiding some steps to run the demos? What can i do after deploying demos on AWS?
Thank you for your answers.
I am following openvidu-node-client example. Here when user leaves the browser or closes the tab the js client make api request to node-server client to remove session and tokens being used.
But what if end user suddenly gets out of power and suddenly computer shuts down.
Is there any way to catch that event?
Hi.
My transmissions are of INDIVIDUAL form, but when the users close badly the transmission does not generate the zip of the recording, in this occasion I can not obtain the JSON that is generated to look for the video
Currently the saved recording is individually, I am recording the screen and audio using Nodejs and angular 7.
The OpenviduSessionComponent component has the field "token" but "tokens" is being passed to it in the UI as in ;
<opv-session #ovSessionComponent [sessionName]="mySessionId" [user]="myUserName" [tokens]="tokens" (leaveSession)="handlerLeaveSessionEvent($event)"
(joinSession)="handlerJoinSessionEvent($event)" (error)="handlerErrorEvent($event)">
</opv-session>
precisely
[tokens]="tokens"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.