Comments (13)
If I understand correctly you just want a possibility to stop/start the gstreamer pipeline on command?
from neko.
Not only gstreamer pipeline but also browser and WebRTC server.
from neko.
Why also browser and WebRTC?
Stopping the pipeline would leave neko in the starting
state, before anyone has joined and could save some cpu cores.
But the browser and the WebRTC server do not need that many resources?
If you e.g. stop an youtube video to watch later and hypernate kills the browser, you have to remember how far along the video you were.
from neko.
My motivation is to be able to disconnect users mainly from streaming video from my server, while being connected to chat. So you are right, no need to turn off browser.
If I have my deployment and I have some people, they are constantly pulling video from my server. Unless I turn off neko, they disconnect or I kick them. I thought about having some lobby, so people can be connected and chat while not receiving video data from server unless admin allows.
Another level of this would be to have this split between users and admins. So allow only admins to stream (logging in to accounts, typing some sensitive information) while users would wait in the lobby and after they will be let in.
from neko.
Simple Solution: Stop the pipeline. All users stay connected and can chat, bandwidth and cpu-cyclen are saved. People see a black "placeholder" where the video should be.
Advantages: Quickly implemented, Sufficient for most cases
Complex Solution: Video does not autoplay. Instead there is an overlay which has to be clicked to join the WebRTC session. If no gstreamer pipeline is run, an different overlay gets put over the video until a video is streamed.
Advantages: Users have clean input, User initiate WebRTC session.
from neko.
I like the first solution, and I think, it could be indeed sufficient. That would create a new usecase: Truning only video pipeline off, so if you are just listening to music, you don't need to receive video stream.
from neko.
This feature took longer then I expected and is still not finished.
It will still need a lot of re-code since it will now need to save all the peerconnections and corresponding websockets to reanounce SDPs after each change of track (removed audio / video). I will try to tackle #48 while I am at it.
from neko.
You can open a draft pull request and I can help with some tasks, if you want.
from neko.
I wonder if this is still being worked on? Its a very helpful feature.
from neko.
I don't think this is being worked on. It can be acheived by stopping docker exec neko supervisorctl stop google-chrome
and starting docker exec neko supervisorctl start google-chrome
. You could wrap it to a simple service and create custom button for that.
from neko.
I was hoping for an automatic hibernation when there are no more users on the room.
from neko.
That info can be received using /stats?pwd=<admin>
endpoint. But yeah, it would be nicer if it would be part of neko itself. But the project is getting bigger and bigger, maybe it would be a good time to think about some plugins/addons. Where such logic could be easily added to neko externally.
from neko.
I could write you a simple modified image that checks like each minute if a user is connected and based on that it will stop/start the browser, if you are interested @Kinuseka
from neko.
Related Issues (20)
- Save to file session recording HOT 4
- Support for mouse capture / pointer lock HOT 3
- About Google Browser Your browser is managed by your organization HOT 5
- browser images out of date HOT 3
- Temp file remains after large sized file transfer HOT 1
- Microsoft Edge docker cannot update to most recent browser release HOT 1
- can I use CDN to speed up HOT 2
- Issue with specific urls in neko browser, getting access forbidden. HOT 3
- [Help] Trying to install apps using XFCE image HOT 1
- When will new version be released, and will it be much more configurable? HOT 9
- How can I embed the Neko desktop into web page without login prompt coming up for viewers? HOT 5
- Fix typing lag in chat + option to clear bans without restarting room HOT 6
- feature request: support 2 Factor Authentication HOT 2
- Vue2 is deprecated HOT 2
- rpi4 install HOT 5
- how to mount browser profile as volume? HOT 2
- Black screen issue on Ubuntu VM HOT 5
- Integrate a third-party chat room embed as the standard chat
- Feature: User activity HOT 8
- Project does not support Chinese, can only copy, cannot edit, and chat interface does not support Chinese input HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neko.