I am new to video streaming and trying to implement simple app to stream video from web browser.
I decided to use Azure Media Service for this purpose and found a lot of tutorials on their side how to stream to Chanel using desktop encoders like OBS, wirecast etc...
What I want to achieve is to stream video from web browser using webcam. I am trying to find if there is some solution for Azure Media Service or everything has to be implemented from scratch.
Thanks in advance
You will need support for RTMP streaming for this. RTMP streaming support isn't natively supported in browsers. One approach is to use a web application with RTMP relay support - e.g. restream.io - as this allows use of a streaming protocol (e.g. WebRTC) that is natively supported in the browser to send the stream out which can then be converted to RTMP by a web service. If you have a need to build your own web application, you would need to implement this essentially from scratch and can leverage a streaming media application framework such as GStreamer for this.
Related
I'm looking for a way to display multiple camerastreams (up to 200 cameras) in a single web application (only a single stream will be visible at each time).
My initial plan was to connect the webapp to the cameras by using an rtsp stream, but this protocol is not supported by most browsers. I have found some sources that it should be possible to display using a thirdparty plugin but for now no luck.
Another idea I had was to deploy a kubernetes cluster with a transcoding service for each camera that converts a rtsp stream into an HLS stream, which is usable in a webapp. But this means defining a hard link between each transcoder pod and each camera.
So my question: Is there an easy way of using rtsp streams in a webapp? Or what do you guys think is a viable way to handle this many cameras in a webapp?
So many thanks!
I am new into RTMP and live streaming.
I have my rtmp server, but the issue is distribution, was looking for a simple rtpms streaming cdn. That can support audio streaming with HSL or dash support.
Or something free similar to youtube live, but for audio but with embeddable html.
Recently(2022.01) most of CDNs support only file-based streaming protocol, like HLS/DASH/CMAF, even you publish the stream by RTMP or WebRTC, the CDN also covert the stream to these protocols.
If you want to build low lagging live streaming application, like RTMP, HTTP-FLV is recommend and you need a CDN to support HTTP-FLV rather than RTMP. HTTP-FLV works well on PC or mobile, please read this post.
You could build your CDN by open-source media-server cluster, like SRS Edge to delivery HTTP-FLV, based on AWS EC2.
For CDN which support HTTP-FLV, you could check Tencent Cloud Streaming Services, which supports publish by RTMP, and deliver by HLS/HTTP-FLV/WebRTC.
I want to add video and voice call to my web application developed with python.
I searched about it on internet, I found that I can do it with WebRTC, but this work is done with JavaScript, but I don't know how to do this work with python?
I'm using Sanic as a web framework in python 3.6.
On the other hand, is it possible to do this work with socketio in python?
I know this module is suitable for chatting apps.
I appreciate for your help.
There are several aspects involved in building WebRTC application:
Serving the web pages and javascript code used by your web clients. You can either use plain static files, or a server-side framework of your choice.
Providing a signaling channel which allows participants to exchange information about what media they support (audio, video, data channels) and how they can reach each other. Very often a WebSocket is used for this, but it's not the only possibility.
Taking part in the actual WebRTC media exchange. This really depends on your usecase. If you are doing one-to-one audio/video then the WebRTC endpoints are usually web browsers, but they could also be native applications. If you are building something like a voice-over-IP service, then most likely one endpoint is a browser, and the other is a server such as Asterisk or FreeSWITCH.
In the event you actually want your users to communicate with a custom server written in Python (for instance if you are doing audio / video processing using OpenCV) you can take a look at aiortc:
https://github.com/jlaine/aiortc
Sanic is just a web server which will serve HTML and JavaScript. You could also use any web server and it would not matter to WebRTC. Web server has no interaction with WebRTC code in any way.
All WebRTC code that you need for video chat will be in a JavaScript file and that code will be used by your browser (Firefox, Chrome, Opera,...). What you need to do in a server is signaling between peers. For this signaling process you can use socketio in python.
I would recommend you to learn more about WebRTC https://codelabs.developers.google.com/codelabs/webrtc-web/#0
I have to develop an on demand streaming platform (Video On demand) and for streaming i would like to use nodejs to control the streamed content ,and i want to know if i have to convert videos to ather formats to get supported by all browsers, Thank you
I'm going to publish a video in a Web page for streaming. I expect having more than 100.000 visits per day in a month. I want to upload my video to a server (or service) that offers the same band-with for all the clients, even if there are hundreds of thousands of clients connected simultaneously.
I will connect the player with the external video.
Note: I cannot use Youtube or Vimeo because the video is 360ยบ technology, so I need to use my custom player.
Please, could you suggest any service that offers this feature?
Thanks!!
I would say this is mostly a question of the streaming technology you'd like use but not the storage alone.
E.g. if you wish to stream via some binary protocol like RTMP, you'll have to use software like Wowza for transcoding and delivery. Hence the load balancing for proper usage of bandwidth will also be served via load balancer like Wowza.
So you should decide what protocols and other technologies you plan using. This will narrow your search parameters.