Does WebRTC chew up lots of bandwidth? - bandwidth

I am considering implementing Freshly Tilled Soil's jq webrtc plugin for a site I am building. Ive tested it and it works quite nicely... my only worry and question is that this will eat up all my clients bandwidth.
So compared to average site visits, does anyone know how webrtc compares?
I KNOW the standard is supposed to use as little bandwidth as possible, but I was hoping to hear from some developers who have used it on their sites.

WebRTC by itself is a peer-to-peer as mentioned by Hartley and with the use of javascript libraries such as peerJS, typically developers do not need a server.
However the client themselves will consume high bandwidth if you are having multiple video chat. For example in a 5 way video chat, each client would have to upload 4 stream to the other peers and download 4 stream from the other peers.

Related

Chat system with Video self hosted

I'm looking for a Chat system with Video/Voice Chat for my Community Website.
I look in Google but all i can find is CRM and Business apps with high prices. in the past I use AVChat based on flash with a Red5 Server. but this is out of date. maybe my English is to bad to search for the right wording. but there are absolutely no app for simple community pages.
I have no problem with a payed software but I cannot pay 100USD for a limited connection service. All free solutions are not work for me.
Matrix Synapse run very well but the Clients are complex and i cannot find coders for fork brand.
Rocket.Chat very bad Video/voice (Jitsi)
any suggestions?
thank you
RTMP only servers like Red5 are no longer suitable since Flash was discontinued.
What you need is HTML5 WebRTC live streaming solutions, that work in latest browsers including mobile.
For HTML5 video calls you could take a look at HTML5 Video Call on GitHub after testing the live HTML5 video call demo.

Why do you need a separate encoder for streaming live video?

I have been searching for an API service that allows for browser based video capturing and encoding for the purpose of live streaming. The company I work for needs an "all inclusive" API but it does not seem to exist. The closest we have come to are streaming services that allow for a player to be embedded and the stream output to be linked to that player. These services always seem to require that you use a separate software to encode your live video.
Are there copyrights held by YouTube and Vimeo that prevent others from creating these technologies? Are there limitations with cost and scale?
Live streaming is typically broken down into to categories:
Video conferencing where where is a limited number of participants. Here video quality typically doesn't matter. This is what browser based broadcasting solutions are designed for.
Second is large audience; where there is a single broadcaster with many viewers. Here separate encoding software is preferred because they are much more feature rich, allow for more options and controls, and allow for using good quality cameras.
COVID-19 made popular new categories of a broadcasted conference calls and simple "one too many" broadcasts from a laptops.
Not many companies have built an end to end services for this use case as significant demand for them has only existed for a few months, and it takes years to build something like this. When Covid is over this market may dry up again.
Qs: API service that allows for browser based video capturing and encoding for the purpose of live streaming:
WebRTC
Qs: Streaming player to be embedded and the stream output:
HLS/DASH Player on Any Standard Browser
You can have a Media Gateway to convert from Webrtc to HLS/DASH (one to many or broadcasting scenario):
Janus
Here is a diagram to illustrate the same

Stream a live video call between 2 people to thousands of people

How can i stream a live video call between 2 people, to thousands of people. I prefer to use webRTC but I can't find the answer to my question. The viewers should be able to watch the stream in a web app.
Streaming to thousands of people is not trivial! It's not as hard as it used to be 10 years ago but is still pretty hard.
WebRTC supports direct browser to browser (peer to peer) connections. This means that WebRTC is primarily targeted at 1:1 conversation. If you want the same conversation (video or audio) to be shared among more than 2 people you have the following options:
Connect any user to any other user. This creates a fully connected graph between the viewers. This is easy to do because all you need is webrtc. No special hardware/software. However it is also very inefficient in thems of trafic and distribution and doesn't scale boyound 5-6 people.
Use A WebRTC Video relay like Jitsi VideoBridge. According to the official performance claims VideoBridge can scale to 500-1000 people given fast and wide enough internet connection.
Direct the Webrtc stream between the two participants to a WebRTC enabled streaming server. If needed, transcode the input stream to a suitalbe codex - x264/VP8/VP9. Convert the input stream to a sutable protocl - RTMP/HLS/DASH. Distribute the content using the buildin functionality of the media server or by the use of a CDN. Play the video on the client side with a player - Flowplayer/JwPlayer/ViblastPlayer/VideoJs/your own Custome Player or a combination of the above. This is the hardest solution but it is also the best one in terams of scalability and platform reach. Such a solution can scale easily to thousands of people and reach all major browsers and mobile platforms.
I guess the third alternative is the one for you. You can read more about the whole capturing/publishing/transcoding/converting business in BlookGeek's greate blog post.
A webrtc based peer2peer connection is not the choice for one-to-n streaming. As there is no broadcast so far in webrtc you should consider another technique.

Cross Platform Video streaming

I'm looking for a video streaming soluiton which has the ability to upload the video files to the server and deliver to multiple receivers on-demand across the hardware and software platforms (Desktop, Tablet, Mobile, Windows, Android, iOS, etc.). The solution should also support streaming live videos.
Can HTML-5 used as client for the above requirements? IF so, what should be the server side streaming solution? Any feedback and alternatives will be very helpful.
Appreciate it.
You may look at MediaMosa, it is a backend that handles video management. You may create your own application on the front-end.

Streaming Media Server and Hosting

My partner and I have a webcam site that basically runs the old-school method....Every 0.5 seconds the javascript reloads the image in the browser from the webcam. However we are wanting to upgrade to a streaming media server to get higher quality video, and possibly audio. We aren't tied to any one specific file format or server type, as of right now we are leaning towards slicehost (as scalability is important), and installing darwin streaming server or wowza.
This is meant to be a live stream. Does anyone have any suggestions for hosts/server software?
Wowza is great and they offer an Amazon EC2 setup with micro pricing to make it affordable.
You can always go with Flash Media Server, but that is expensive.
Red5 is free and open source.
UPDATE
Based on your comment, you can also use UStream. It is free and will hook into Flash Encoder, which is also free.
Do you absolutely have to stand up your own streaming server? Services like LiveStream can do what you're talking about for much cheaper than setting up your own hardware.