Hey Kyle, perfect video I was stuck for a long time on this finally worked! But I still have a question, I set up an SSL connection and everything working fine except that on both divs I have my device's stream.. how cannot access the other remote peer's stream?
Great Video! Echo'ing an earlier comment => "Hi, I deployed this app on heroku and when I am using two different PC , it doesn't show the other PC stream on the first one. Both boxes have the same video stream which is actually my own. Im not getting video of the other PC". And on the other PC they are seeing two videos of their own face.
Great resource. I did this setup on a dedicated server. My setup includes SSL over all required ports and URLs (i.e. Signal, TURN/STUN and WebRTC servers). Everything is going well, but I can only see myself! I can make more than two connections with different computers or phones, no problem. It works very fast and accurately. But the problem is that in all added video tiles, each user can only see himself, i.e. you see yourself 4 times. Or you see yourself 5 times when a new user connects, and so on. I've read similar issues in the comments but unfortunately no answer yet since 4 years.. Or is there?
Hi Kyle, I believe the problem comes from the webrtc-swarm library used in the package.json file. It hasn't been maintained for 5 years and seems to be outdated and relies on deprecated features of the old simple-peer and old webrtc library versions. I modified it with one of the MAINTAINED forks of webrtc-swarm, which is 21 commits ahead of the original library. However, I am still a long way from a truly successful result. Now I don't see myself multiple times, but the other user's stream still doesn't arrive on my screen.
Hello again, I see you are too busy to respond to my comments or you may not have seen them. Anyway, after checking my TURN (coTURN) server configuration, I can now see the incoming and outgoing data bytes (by typing "about:webrtc" in the Firefox URL bar). Everything seems fine with these logs. If I use Chrome I see the stream as a black video (In Firefox, it is white!?). When I try to pause it it crashes and plays again. So I believe the other stream, at least the data bytes of the other stream, is coming through. I've searched and found that the video codecs might be wrong but when I checked (from SPD in the P2P logs on webrtc), it's also correct. Unfortunately, when I don't see any error logs anywhere (including the TURNserver, signalhub, and webrtc logs), I feel like I'm somewhere in the middle of an ocean with no signs. If you can help me it would be greatly appreciated.
Kyle please where could i get the docs for signalhub and webrtc-swarm? i have been searching the web for weeks now…. i cant find any docs.. where did you learn all that you show in your video?
Hi, I deployed this app on heroku and when I am using two different PC , it doesn't show the other PC stream on the first one. Both boxes have the same video stream which is actually my own. Im not getting video of the other PC
Can we add the user ID in a database and allow calling to a specific person saved on that database? If so, can you make a tutorial about this? It will be much appreciated. Thanks.
It looks like webrtc-swarm should handle this (maxPeers is a key for the swarm opts parameter).. but I also can't seem to get more than 2 peers working. RIP
Cool video. I guess you could have checked the source before ;) I have a question by the way. You seem to be way into the Javascript/NPM ecosystem. I am also using Nodejs on a daily basis, mostly because of it's lightweight, event-driven networking capabilities. At the same time, I am an embedded developer using C/C++ on microcontrollers, which is a totally different game. Now because I live in both worlds so to speak -- I literally switch back and forth between the two by CMD-tabbing, I am sometimes very surprised at the ease at which JS developers just go ahead and npm install a bunch of packages, more often than not consisting of thousands of files, just to write a few lines of 'something.on('data', data => document.write(data))'. I know computers have gotten more powerful and all that, but I have been wanting to ask developers like you and perhaps other like: are you aware of this? Do you care? Should I care? I guess because of my background in electrics and the inherited limitations of most microcontrollers, I take care using its resources. I feel like JS developers don't really do this and would benefit from some education on this front, because it might keep them from ever fully understanding what they are doing. I would like to hear some opinions on this :)
Yes I agree and I am obviously guilty of not caring enough to look at the source I'm installing to often :) I don't think there is a right solution though. I mean, there is a ton of stuff I run on my computer that I have no idea how it works. I use Ember daily working a high traffic web app but rarely ever dive deeper than their docs. I guess a lot of JS libraries make it easy to be just an user. What is funny about signalhub though is I've contributed to that project. I read the source before but didn't fully evaluate the source until I was called out about it. Those projects being a bit more new and experimental, I should have dove deeper into the source first. I don't think it should be a requirement to read the source of all your dependencies but you'll always learn stuff if you do, so maybe just highly recommended (I'm also reminding myself this to avoid future mistakes).
I think it's good to care after all it makes you that more conscientious of a programmer. But JavaScript, it's history, and the developers are 'cut from a different cloth'. JavaScript: - was meant to add pizzazz to the UI from its' inception which attracted the more visual 'insta feedback' types. - each developer's skill set can differ vastly; some specialize in forms/database, others in fancy UI/animation, others data/science etc., but ALL want a language that gets them to their goal easily/quickly in the WEB space, so mileage will vary on how fastidious each developer is - because JS is not as hefty as JAVA/C it almost single handedly turbo charged the web, because those 'types' find ways to make things look (e.g. using images for shadows), which in turn makes the consortium pay attention, which in turn makes the browser vendors pay attention etc. They won't think at the 'lower level' often to get something done (how they use npm is a manifestation of that) , but because they have the means (ie enough knowledge of npm) the web continues to be an expressive medium where both back/front devs can co-exist. One thing for sure : the technology/learning-curve continues to be rise on both sides.
Great video Kyle. I have learned a lot from your videos. Please keep them coming
This is so superdrooperhyperhelpful! Thanks for sharing this with us! You're awesome!
Professional, honest, impressive and interesting person.
Hey Kyle, perfect video I was stuck for a long time on this finally worked!
But I still have a question, I set up an SSL connection and everything working fine except that on both divs I have my device's stream.. how cannot access the other remote peer's stream?
Great Video! Echo'ing an earlier comment => "Hi, I deployed this app on heroku and when I am using two different PC , it doesn't show the other PC stream on the first one. Both boxes have the same video stream which is actually my own. Im not getting video of the other PC". And on the other PC they are seeing two videos of their own face.
This videos are great. Is this code still working on 2020 webrtc code or is there something deprecated?
still its working great
Great resource. I did this setup on a dedicated server. My setup includes SSL over all required ports and URLs (i.e. Signal, TURN/STUN and WebRTC servers). Everything is going well, but I can only see myself! I can make more than two connections with different computers or phones, no problem. It works very fast and accurately. But the problem is that in all added video tiles, each user can only see himself, i.e. you see yourself 4 times. Or you see yourself 5 times when a new user connects, and so on. I've read similar issues in the comments but unfortunately no answer yet since 4 years.. Or is there?
Hi Kyle, I believe the problem comes from the webrtc-swarm library used in the package.json file. It hasn't been maintained for 5 years and seems to be outdated and relies on deprecated features of the old simple-peer and old webrtc library versions. I modified it with one of the MAINTAINED forks of webrtc-swarm, which is 21 commits ahead of the original library. However, I am still a long way from a truly successful result. Now I don't see myself multiple times, but the other user's stream still doesn't arrive on my screen.
Hello again, I see you are too busy to respond to my comments or you may not have seen them. Anyway, after checking my TURN (coTURN) server configuration, I can now see the incoming and outgoing data bytes (by typing "about:webrtc" in the Firefox URL bar). Everything seems fine with these logs. If I use Chrome I see the stream as a black video (In Firefox, it is white!?). When I try to pause it it crashes and plays again. So I believe the other stream, at least the data bytes of the other stream, is coming through. I've searched and found that the video codecs might be wrong but when I checked (from SPD in the P2P logs on webrtc), it's also correct. Unfortunately, when I don't see any error logs anywhere (including the TURNserver, signalhub, and webrtc logs), I feel like I'm somewhere in the middle of an ocean with no signs. If you can help me it would be greatly appreciated.
Kyle please where could i get the docs for signalhub and webrtc-swarm?
i have been searching the web for weeks now…. i cant find any docs.. where did you learn all that you show in your video?
Hi, I deployed this app on heroku and when I am using two different PC , it doesn't show the other PC stream on the first one. Both boxes have the same video stream which is actually my own. Im not getting video of the other PC
Even i am getting same problem please tell solution if anyone knows
having this same issue hosted on AWS. works with multiple tabs on same computer but doesn't work for peers on different
computers
I have the same issue, does anyone have a solution ?
Can we add the user ID in a database and allow calling to a specific person saved on that database? If so, can you make a tutorial about this? It will be much appreciated. Thanks.
Great video ! Just to be clear, it is working for 2 people on the same local network (wifi or ethernet) no way to put this available via URL ?
Great video. so the back-end should be SSR right ? (as now base on java for back-end)
The backend could be anything you want. Any kind of server that can serve regular HTML, CSS and JS.
Wonderful video as usual. Please, can you make a video showing how we can have more than two pears connected at a time? Thank you.
It looks like webrtc-swarm should handle this (maxPeers is a key for the swarm opts parameter).. but I also can't seem to get more than 2 peers working. RIP
@@ChiefInspectorSpankie same here, someone has a solution to this?
Great video man, Do you have any examples for react and simple-peer? can you point me to something
how can i do for a specific person... like in we made a call to someone in Skype or in Facebook..!
It works only till 2 video limit
third is not working
Much love!!!
Your videos are awesome!!!
Great video !
Thanks!
Cool video. I guess you could have checked the source before ;)
I have a question by the way. You seem to be way into the Javascript/NPM ecosystem. I am also using Nodejs on a daily basis, mostly because of it's lightweight, event-driven networking capabilities. At the same time, I am an embedded developer using C/C++ on microcontrollers, which is a totally different game. Now because I live in both worlds so to speak -- I literally switch back and forth between the two by CMD-tabbing, I am sometimes very surprised at the ease at which JS developers just go ahead and npm install a bunch of packages, more often than not consisting of thousands of files, just to write a few lines of 'something.on('data', data => document.write(data))'.
I know computers have gotten more powerful and all that, but I have been wanting to ask developers like you and perhaps other like: are you aware of this? Do you care? Should I care?
I guess because of my background in electrics and the inherited limitations of most microcontrollers, I take care using its resources. I feel like JS developers don't really do this and would benefit from some education on this front, because it might keep them from ever fully understanding what they are doing. I would like to hear some opinions on this :)
Yes I agree and I am obviously guilty of not caring enough to look at the source I'm installing to often :)
I don't think there is a right solution though. I mean, there is a ton of stuff I run on my computer that I have no idea how it works. I use Ember daily working a high traffic web app but rarely ever dive deeper than their docs. I guess a lot of JS libraries make it easy to be just an user.
What is funny about signalhub though is I've contributed to that project. I read the source before but didn't fully evaluate the source until I was called out about it. Those projects being a bit more new and experimental, I should have dove deeper into the source first.
I don't think it should be a requirement to read the source of all your dependencies but you'll always learn stuff if you do, so maybe just highly recommended (I'm also reminding myself this to avoid future mistakes).
I think it's good to care after all it makes you that more conscientious of a programmer. But JavaScript, it's history, and the developers are 'cut from a different cloth'. JavaScript:
- was meant to add pizzazz to the UI from its' inception which attracted the more visual 'insta feedback' types.
- each developer's skill set can differ vastly; some specialize in forms/database, others in fancy UI/animation, others data/science etc., but ALL want a language that gets them to their goal easily/quickly in the WEB space, so mileage will vary on how fastidious each developer is
- because JS is not as hefty as JAVA/C it almost single handedly turbo charged the web, because those 'types' find ways to make things look (e.g. using images for shadows), which in turn makes the consortium pay attention, which in turn makes the browser vendors pay attention etc.
They won't think at the 'lower level' often to get something done (how they use npm is a manifestation of that) , but because they have the means (ie enough knowledge of npm) the web continues to be an expressive medium where both back/front devs can co-exist. One thing for sure : the technology/learning-curve continues to be rise on both sides.
"I've made a huge mistake"
god