- Видео 102
- Просмотров 62 717
Tsahi Levent-Levi
Добавлен 13 авг 2007
I am Tsahi Levent-Levi, also known as BlogGeek.me
I offer consulting and analysis services for WebRTC and digital communication technologies.
For training courses on WebRTC check out webrtccourse.com
For testing, monitoring and support of WebRTC applications see testrtc.com
For me directly, look at bloggeek.me
I offer consulting and analysis services for WebRTC and digital communication technologies.
For training courses on WebRTC check out webrtccourse.com
For testing, monitoring and support of WebRTC applications see testrtc.com
For me directly, look at bloggeek.me
Can you build a group video service without media servers?
On WebRTC mesh and scaling: bloggeek.me/webrtc-p2p-mesh/
Other group meeting architectures to explore: bloggeek.me/webrtc-multiparty-architectures/
Our WebRTC courses: webrtccourse.com/developers
#webrtc
Other group meeting architectures to explore: bloggeek.me/webrtc-multiparty-architectures/
Our WebRTC courses: webrtccourse.com/developers
#webrtc
Просмотров: 15
Видео
Can a TURN server be used to record audio and video in WebRTC?
Просмотров 3421 час назад
How to record in WebRTC: bloggeek.me/recording-webrtc-sessions/ Some facts about TURN (and STUN): bloggeek.me/we-turned-to-see-a-stunning-view-of-the-ice/ Our WebRTC courses: webrtccourse.com/developers #webrtc
Twilio and Programmable Video, Nov 2024 update
Просмотров 5414 дней назад
Twilio Programmable Video isn't being sunset It is here to stay, but with a slightly different focus Read more here: bloggeek.me/twilio-programmable-video-back/ #webrtc #twilio #videoapi
Should you support old browser versions?
Просмотров 5214 дней назад
Some more on WebRTC browser support: bloggeek.me/webrtc-browser-support/ Our WebRTC courses: webrtccourse.com/developers #webrtc
The evolution of WebRTC (Nov 2024 edition)
Просмотров 8514 дней назад
Here are the different eras in the evolution of #WebRTC: 1️⃣ 2011-2014: EXPLORATION, where we asked should we use WebRTC 2️⃣ 2015-2019: GROWTH, where we asked how do we use WebRTC 3️⃣ 2022-2024: DIFFERENTIATION, where we asked how do we compete 4️⃣ 2025 : GEN AI We're entering the Gen AI era. Companies will be looking into how they can sprinkle the #GenAI fairy dust on top of WebRTC More on Web...
What is pacing in WebRTC?
Просмотров 7421 день назад
A bit on pacing: bloggeek.me/webrtcglossary/packet-pacing/ More on important video metrics: bloggeek.me/top-7-webrtc-video-quality-metrics-and-kpis/ Our WebRTC courses: webrtccourse.com/developers #webrtc
How does bandwidth estimation work in WebRTC?
Просмотров 7028 дней назад
Bandwidth estimation: bloggeek.me/webrtcglossary/bwe/ More on bandwidth in large sessions: bloggeek.me/group-video-calls-effectively-managing-bandwidth/ Our WebRTC courses: webrtccourse.com/developers #webrtc
Network APIs
Просмотров 120Месяц назад
WebRTC in 10min | A monthly chat between Arin & Tsahi Arin is looking at Network APIs, and it is time to see where they fit into the world of WebRTC and VoIP (hint: not in many places). Here's what we looked at 🔹 What are Network APIs 🔹 Going through a few examples of them 🔹 What do WebRTC developers need from CSPs 🔹 Where's the incentive for CSPs and developers To learn more about WebRTC and o...
Why isn't everyone switching to AV1 video codec if it is so good
Просмотров 208Месяц назад
A bit on AV1: bloggeek.me/webrtcglossary/av1/ AV1 vs HEVC: bloggeek.me/av1-vs-hevc-webrtc-codec/ More on video codec generations in WebRTC: bloggeek.me/webrtc-video-codec-generations/ Our WebRTC courses: webrtccourse.com/developers #webrtc
What are the advantages of H.264 over VP8 in WebRTC?
Просмотров 73Месяц назад
H.264: bloggeek.me/webrtcglossary/h-264/ VP8: bloggeek.me/webrtcglossary/vp8/ VP8 or H.264 for your app? bloggeek.me/h264-vp8-video-course/ Our WebRTC courses: webrtccourse.com/developers #webrtc
When should you use G.711 in WebRTC?
Просмотров 63Месяц назад
A bit on G.711: bloggeek.me/webrtcglossary/g711/ Our WebRTC courses: webrtccourse.com/developers #webrtc
How is SVC different from simulcast?
Просмотров 43Месяц назад
In this video, we explain the difference between simulcast and SVC in video streaming. Simulcast sends three independent video streams at different resolutions, while SVC uses a single stream with layers of increasing quality. Though SVC is more efficient, it requires specialized decoder support, which is lacking in current hardware, making simulcast a simpler and more widely used solution. We ...
OSS vs CPaaS
Просмотров 782 месяца назад
WebRTC in 10min | A monthly chat between Arin & Tsahi This time, we dived into the relationship between #OSS (Open Source Software) and #CPaaS (Communication Platform as a Service) 🔹 The use of OSS in CPaaS infrastructure 🔹 Is an open source reference app of CPaaS really open source? 🔹 What does it mean a CPaaS platform offering true open source? 🔹 How does an OSS/CPaaS platform maintains vendo...
Should you use Google's STUN server?
Просмотров 2572 месяца назад
Using Google’s public STUN server (stun.l.google.com:19302) might seem like an easy option, but it's not ideal for production environments. It’s a free service, but it’s been running in a single Google environment for years without much oversight. Relying on free services for production applications can lead to issues like lack of reliability, scalability, and support. Instead, you should host ...
Video codec generations
Просмотров 682 месяца назад
In #WebRTC, when moving from one video codec generation to another, there's a cost to be paid (CPU and memory use). The benefit? Better quality for the same bitrate There are two ways in which we can use it: ☝️ Increase quality for the same bitrate ✌️ Reduce bitrate for the same quality More on bitrate: bloggeek.me/tweaking-webrtc-video-quality-unpacking-bitrate-resolution-and-frame-rates/
GetUserMedia & the new permissions element
Просмотров 1142 месяца назад
GetUserMedia & the new permissions element
What to do when WebRTC runs over TCP?
Просмотров 762 месяца назад
What to do when WebRTC runs over TCP?
What is the difference between ICE, Trickle ICE and ICE lite?
Просмотров 912 месяца назад
What is the difference between ICE, Trickle ICE and ICE lite?
What browser versions to support with WebRTC?
Просмотров 613 месяца назад
What browser versions to support with WebRTC?
What to do in a meeting where one user has low bandwidth?
Просмотров 463 месяца назад
What to do in a meeting where one user has low bandwidth?
In WebRTC, should you use simulcast or SVC?
Просмотров 2623 месяца назад
In WebRTC, should you use simulcast or SVC?
Abstraction layers in Video API solutions
Просмотров 1393 месяца назад
Abstraction layers in Video API solutions
Misusing SVC in WebRTC media servers
Просмотров 1333 месяца назад
Misusing SVC in WebRTC media servers
Why losing a packet of video data can cause the loss of the whole video stream?
Просмотров 353 месяца назад
Why losing a packet of video data can cause the loss of the whole video stream?
WebRTC SFU using simulcast when it is not needed
Просмотров 1703 месяца назад
WebRTC SFU using simulcast when it is not needed
Top 7 WebRTC Video Quality Metrics and KPIs
Просмотров 1513 месяца назад
Top 7 WebRTC Video Quality Metrics and KPIs
Is higher video bitrate better for quality?
Просмотров 1054 месяца назад
Is higher video bitrate better for quality?
For me, the answer is something like this: the av1 codec is great because my CPU can encode to this format twice as fast as the h.265 codec, but... my set-top box can't play these files in the vls player at the speed I normally set it to: 1.3-1.5x, although it works fine at 1.0x, but I don't like it! But with h.264 and h.265 - it can be done without lags and jerks. However, if I have a video card in my PC that supports hardware encoding in the h.265 codec (any one that is faster than the CPU and knows how to do it), then the picture is already different: I will prefer the h.265 codec, because on the processor it is only 30-40 frames per second in my case, and on the video card it is already 108 frames per second (rx-580), or even 385 frames per second (rtx-3060). Graphics cards with AV1 support are still rare, either expensive (rtx4000x) or highly specialized (intel).
Thanks for this. By the looks of it, your focus is streaming - the question here was about realtime - live video - a conversation between people for example. In such a case, developers would love to use AV1, but they can't be certain the CPU their users have will be up for the task
This discussion completely ignores Safari (especially on iOS devices). If you want to support it, you will see many old versions since some people never update their iOS devices from the time they buy them. There are still IOS 11 devices in use. If you have Windows 7 or 8.1 users, which can be about 5-10% of your user base, you will see customers using Chrome 109. For Firefox ESR (Extended Support Release), you see versions 115 and 128, both of which are actively supported. You need to look at your web server logs, run the stats, and decide which versions you want to support. If you need to test old versions, you can use a service like BrowserStack.
Hello, we're building a livestreaming app currently and we're trying to send over web-rtc video stream to python which receives that stream and transcodes it. The problem is, we can't figure out how to synchronize video tracks and audio tracks and transcode them to a standard rtmp / hls compatible format. Do you have any suggestions on what we should do?
There are RTP timestamps and NTP timestamps The RTP timestamps aren't "aligned" across streams and aren't absolute. They are like "relative" position in CSS The NTP timestamps are "absolute" position in CSS and enable WebRTC to lipsync channels Also, I wrote about this recently - bloggeek.me/lip-synchronization-webrtc/
But if we increase bitrate but i have heard it effect reel by creating to buffering those of my audience which had low internet
nice
👍👍
i like your video
very nice
Guess who is your subscriber #500 now...
dude, how is this specific to video APIs?
It isn't, but I've noticed many in the video API domain struggling with it. The main difference is elsewhere - the video API space has a lot more variety and differences in behavior than many other domains, so you end up with an abstraction layer that ends up being quite complex if your use case isn't the most simple and straightforward one.
what about UDP?
@@dewayn3 that's what you'll be using since TCP isn't optimal for the job
Can you share how the estimate is down by webrtc?
Missed this one somehow. The process isn't a simple one and won't fit a comment here. It is detailed in my WebRTC Protocols courses. Also, Gustavo has a nice explanation here: medium.com/@ggarciabernardo/loss-based-bandwidth-estimation-in-webrtc-8d650f72bb42
This is not limited to webrtc, right? I can implement it on my own using webtransport, right?
Theoretically you can. I am not sure that it is possible though To make VP8 or any other video codec encode with a temporal scalability scheme, you need to configure the encoder accordingly (it isn't there by default) WebCodecs' interface seems to have the ability to handle such configurations, but are these implemented by the browsers properly and for this purpose is a different question with likely a slightly different answer. This means you'll need to experiment with it to get to a conclusive answer.
@@tsahilalright, thanks
your blog means a lot, i was just googling for options to my hobby project and suddenly i found myself opening 10 tabs full of your blog posts. Now i am interested in network systems more thanks 🙏
Well explained, but a nightmare to listen to for people with misophonia. Please be careful with smacking into the microphone.
Good stuff
Very well explained, will help me a lot in building my project. thanks:)
Very interesting Topic! thanks 🙌
Is it me or there is a mistake on the mesh total's bandwidth? (4+4) * 5 = 40, not 20.
20 is correct. You're counting each connection twice. In mesh, since we send the data directly to other users, we need to count either only the uplink or the downlink. If we count them both, then A's uplink towards B is actually also the downlink to B from A. So the calculation needs to be 4*5=20
Warm greetings and thanks for the video course!
How can we recover the video from the downloaded dump txt file?
You can't...
love this WebRTC Insights series!
Simple but fantastic, thanks sir 🥰
Is webrtc free i mean i want to create something like peer2peer livestream and dont want to store any videos data on my server, still do i need to pay lot of cloud bills i am aware of stun servers but from my understanding they are cheap to host.
STUN is cheap. TURN is more expensive. To make sure your sessions get connected in more scenarios, you will need to support TURN as well, which costs based on bandwidth consumption. This is because sometimes, there's no "direct" route available in P2P since NAT devices will block such routes. Hence a relay (TURN server) will be needed.
@@tsahil can TURN be used as a backup. For context. I want create an omegle like app and want it to be cost effective and scalable. What do you recommend?
@@bilalshaikh6603 TURN is always there as backup. It won't be used on all calls - only on those who need them. This typically amounts to 10- 20% of calls (depending on users and their networks)
@@tsahil if i ran a webrtc app the only major cost would be of running turn servers. Am i right?
@@bilalshaikh6603 Yes, assuming it is P2P and I am ignoring hosting costs for the application logic itself
Awesome video, thanks a lot! Is this what happening with VP8 in Jitsi Meet?
As far as I know - yes That said, Jitsi Meet also supports VP9
Thanks for your work guys, stay safe!
AV1 is supported in Firefox for a long time now...
This video is a year old. I'll probably be updating it at some point, but not yet While browsers generally have AV1 support these days (event for WebRTC), this is limited in capabilities and I'd still consider it "work in progress". For the most part, I won't suggest using AV1 in WebRTC for those who don't have first-hand experience with video codecs AND WebRTC (and first-hand doesn't mean "I installed and ran it once and it worked for me")
@@tsahil Indeed it seems like even though Firefox had officialy supported since early 2019, I couldn't find any mention of AV1 being used in WebRTC inside Firefox. Actively using AV1 in WebRTC calls is probably more complicated than just "supporting AV1". Awesome! I would be really interested in update to this series. WebRTC is such complicated and evolving piece of technology and somehow you can explain it in very clear fashion :)
I think the graphic is a bit misleading. Ruling out the old and expansive MCU technology, which is w.r.t the "load" having to be handled by each communicating part the optimal solution, it seems at the first glance, that the full mesh is the technology which fits best. I haven't viewed the rest of the video, but the correct math to calculate the load having to be handled by each communicating path would IMHO be like this: Mesh scales with N(N-1) and SFU with N+1. Example: In a full mesh of 10 parties each party would have to deal with 90 unidirectional streams while in an SFU solution each party would only have to deal with 11 (not to talk about MCU, where it would be 10). So with this in mind SFU scales way better than full Mesh at scale
You are correct - SFU is definitely the way to go. That's about the conclusion of the video. If you're using anything else then you need to have a really really good reason for doing so.
And what about transport-wide-cc-02? Is there something new and really useful?
twcc is what is used by some of the media servers out there today already. It is considered the best approach today by many
@@tsahil I saw that Google Stadia use the newer version of this extension - transport-wide-cc-02. So I decided to add it on the client side SDP and after that stream FPS decreases to zero in a couple of minutes. Strange but looks like the server supports this extension but I have no idea how to make it work as expected.
@@YuriiShypulin Stadia is no more, and its bandwidth estimator was tuned for cloud gaming/rendering, so unless that's your use case, I wouldn't bother. Also note that since there's no Stadia anymore, the question is will Google maintain this moving forward in its WebRTC implementation...
@@tsahil thank you!
Thanks... Simple and Perfect explanation...
Great Explanation indeed, many thanks!
Thank you so much for this! Clear and concise.
Brilliant explaination
Very great video, many thanks from Africa
Ty
Very happy to be the first one commenting in this great introductory video. Great job! I hope you post more videos like this!
Thank you for the kind words Marco
site is gone
True
Thx, do you know how to fix host connectivity?
Host connectivity issues are tricky as they can happen due to a myriad of reasons - from wrong TURN server configuration to firewall blocking rules. Not something that can be done in a RUclips comment...
So True!! Tsahi you're number 1
is it Practical or theoretical course?
Today there are now 2 main courses for developers: 1. Architecture - which is a bit more theoretical 2. Codelab - which is purely practical
@@tsahil are you making any project in this course?
@@rezaulmasum205 Look at the course itself - the first few lessons are free. You can find them here: webrtccourse.com/course/webrtc-codelab
Great tool, thank you! But I wish I could skip the camera check, it takes __forever__ and it is the least important thing (for my use)! I started to block the page from accessing my mic and camera :\ I sincerely hope you can make it optional ;) Again, thank you so much :)
Not my tool, so can't do much about it. That said, its code is open source - just take it, remove what you don't like and host it elsewhere
I'm grateful. I was curious concerning It's related to server traffic scaling and availability.
I’M GRATEFUL!! "chrome://webrtc-internals/" is very important to debug.
I appreciate your effort.
Is the course up to date?
Yes. Last update took place February 2020. There is also now a WebRTC Codelab course (from April 2020) that is available
Amazing talk, so much to take away from it. Thanks so much!
So we should wait until this creepy thing becomes stable. That's what I understand from last part of your talk.
Only if you want to miss the market... For anything that is browser based, WebRTC is your only option. And like any other technology it has its advantages and challenges. You just need to know them and figure out ways to make use of them (the advantages) or overcome them (the challenges).
If you wait until things are cheap, you'll be the last in line.
Amazing insights!
ohhhh, noooooooooooooooooooooo!!! 600 dolars !!! i am sure the course is worth even more... but unfortunately can't afford it!!! :'(
I can't believe I just found this.... I will enroll the course right away!!!!! lets see... it looks pretty good. :)