airensoft / ovenlivekit-web Goto Github PK
View Code? Open in Web Editor NEWOvenLiveKit for Web is a JavaScript-based Live Streaming Encoder
License: MIT License
OvenLiveKit for Web is a JavaScript-based Live Streaming Encoder
License: MIT License
I see screen distortions when streaming from my phone or when the Internet is bad. This is when I stream through WebRTC.
I suspect that the problem may be in a large number of transmitted frames and in the bitrate.
Is it possible to set the maximum frame rate in OvenLiveKit?
Linked with AirenSoft/OvenMediaEngine#546
Hi, I am trying to mirror the input steam from the user's mediaDevice horizontally but I don't know how.
ovenLivekit.getUserMedia().then(function () {
// Got device stream and start streaming to OvenMediaEngine
ovenLivekit.startStreaming('ws://my-local-ip:3333/app/stream?direction=send');
});
Webrtc dynamically calculates the bit rate of the push stream according to the bandwidth. At the beginning of the push stream, the picture will be blurred, and as the real-time bit rate increases, the picture will become clearer. But I still hope webrTC will have good video resolution in the first few seconds after the stream is pushed. Could you please set SDP to set the minimum bit rate?
Device: pc
OS: windows11
Browser:Google Chrome 96.0.4664.45
OvenMediaEngine Version: v0.12.7
push tool:OvenLiveKit-Web v1.0.2
Hi,
I am working on adding a mute/unmute button to the kit that streams audio (no video).
I am trying to access with DOM the incoming stream from a user's microphone, but can't really accomplish this.
Here is a code snippet:
<script>
// Initialize OvenLiveKit
let ovenLivekit = OvenLiveKit.create();
// Get media stream from user device
ovenLivekit.getUserMedia({video: false, audio: true}).then(function () {
// Got device stream and start streaming to OvenMediaEngine
ovenLivekit.startStreaming('wss://your_oven_media_engine:3333/app/stream?direction=send');
});
document.getElementById("muteBtn").onclick = function(evt) {
const newState = !ovenLivekit.getAudioTracks[0].enabled;
document.getElementById("muteBtn").innerHTML = newState ? "▶️" : "⏸️";
ovenLivekit.getAudioTracks[0].enabled = newState;
}
</script>
=======
I am trying to access the microphone stream with ovenLivekit.getAudioTracks[0], but it does not work. Returns "Uncaught TypeError: Cannot read properties of undefined (reading '0')"
Any help with this is very much appreciated!
Hello! In example https://demo.ovenplayer.com/demo_input.html I can change audio settings and select "Without audio", but then streaming stopped. I can disable the microphone without stopping the stream?
Hi! Can you, please, test and add example to documentation for screen sharing using OvenLiveKit?
It's funny, but I made it work simply by replacing ovenLivekit.getUserMedia
with ovenLivekit.getDisplayMedia
. As a result captured screen stream gets displayed in my video
element and stream is sent to media engine. In my test scenario constrains were set to video: { width: 1280, height: 720 }
and I was sharing browser tab. I am not sure if I simply got lucky that it did work and if display media is supported and what constrains should I use?
Thanks!
PS I just noticed the previous question was exactly regarding same problem and checking
OvenLiveKit-Web/src/OvenLiveKit.js
Line 222 in 17e7387
but still not sure what to do with constraints and video element as I am having problems trying to share app window or entire screen
I am implementing this on ionic for android, below code is taking too much time to get list of device(videoinput, audioinput).
await OvenLiveKit.getDevices().then((devices) => {
this.deviceList = devices.videoinput;
})
I have just started implementing this im new to this kit web
it is working on html & javascript issue is only for ionic android
Hi Oven Team,
When I tried start the Screen Share streaming, it takes some time to start the streaming.
I didn't find the reason of the delay in the start.
Hoping for fixed this issue soon.
Hi! I am trying to get 720x1280 stream, but it doesn't seem to work regardless of what settings I am passing as constraints on a client side. Inside OvenLiveKit-Web it's obvious that you set params in a way to get max possible resolution, but even when I set video: true
to let the Kit take the resolution, oven media engine outputs 480x640 max. Maybe I am missing something obvious? I did try passing video: { deviceId: undefined, width: 1280, height: 720 }
in constraints and a bunch of other settings without any luck. At some point I got 720 as oven media engine output while testing, but couldn't reproduce it.
OvenLiveKit-Web/src/OvenLiveKit.js
Line 84 in 17e7387
const constraints = {
audio: { deviceId: undefined },
video: { deviceId: undefined, width: 1920, height: 1080 }
};
Issue deprecated, please, delete.
Apple released iOS 15.1 yesterday and now when sending a WebRTC stream in the browser, the page suddenly reloads 😢
I first observed this in my application, but checked on the OvenPlayer demo page and it is behaving the same way.
The problem is, there are no errors in the console even up to the moment the page reloads. The stream even appears to connect fine so this could be an issue with the WebKit browser itself. After a couple of attempts you will see a generic error of 'A problem repeatedly occurred on {URL}'.
@SangwonOh are you able to reproduce this issue? Any idea what is happening? 🙏
As title, can I push media stream from my desktop to OME?
Testing WebRTC at https://ovenplayer.com/docs/demo_input.html
connectionClosed callback is never called when I stop stream on client side. It works when connection is closed from server side.
Obviously socket connections is not getting closed properly from client side as it should happen here
OvenLiveKit-Web/src/OvenLiveKit.js
Line 367 in 17e7387
So webSocket.onclose
never happens and that's strange as instance.webSocket.close();
is called here
OvenLiveKit-Web/src/OvenLiveKit.js
Line 741 in 17e7387
Can you please double check on your side? Thanks!
I've been utilizing OvenLiveKit-Web extensively and appreciate its robustness. However, I've come across a scenario where I need to attach an external or pre-existing MediaStream to OvenLiveKit. To my knowledge, it seems the current API primarily supports obtaining the media stream through getUserMedia.
Proposed Feature:
Introduce a method, say setMediaStream(stream), allowing developers to attach an external MediaStream.
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.