Closed indigo6alpha closed 8 years ago
My lord... I mean.. we thought about it ofcourse.. but in a reversed situation, mainly in the sense of what if WebChimera was a local app and somehow passed the frames to the browser thus making all videos playable with an installed software and just a canvas on whatever page.
Even in this similar yet simpler scenario we couldn't get the idea rolling. But what your talking about literally means processing the video server side for each individual user, which even if it did work, would nuke your server resources in an unimaginable way..
I don't think it's possible, and even if it would be, I would definitely not recommend it. You're better off transcoding each video to a mp4 container and supported video + audio codecs then just streaming them like you just don't care.
@RSATom might be able to enlighten you more to the limitations of what your attempting to do, as he was the one that motivated me against the alternative concept I explained above.
@indigo6alpha, I think yes, it's possible techically. But don't think it's good idea. It will require too high bandwidth for delivery frames to client.
Thanks @jaruba @RSATom for your responses. I should've mentioned that my application is a local desktop application, close to what @jaruba described. It's built using brackets-shell, which uses CEF to render webpages and has a separate node process running in the background, unlike nw.js. The reason I chose this over nw.js is simply because of the customizable application shell it provides(custom themes and more control over window behavior). Since the chrome window and node are two separate processes, I'm having a bit difficulty passes these frames between the two.
@jaruba, if you don't mind me asking, can you explain how you'd planned to pass the frames to the web page by running WebChimera as a local app?
@indigo6alpha I've written a piece on the WCjs in general - https://github.com/RSATom/WebChimera.js/wiki/Limitations-(Read-this-for-Android-%7C-Raspberry-Pi-%7C-performance-issues) (@RSATom @jaruba shame on you for not linking to it :) )
I'd suggest something far cleverer to you: use WebChimera.js NOT to get frames, but to control libvlc and bind libvlc to a window context of the window you're using with brackets shell
That way to have no frames transfer, therefore no overhead and perfect performance. This is required if you want to have a video app that works well, even on old-ish devices (or ones with bad GPU drivers :) )
Here's an example of that approach in tint2
, I hope there's a way to do it in brackets-shell
as well (if so, please share) - https://github.com/Ivshti/playback-native
best of luck!
@indigo6alpha I never experimented with it, I was planning to use socket.io in some way or another also, but I didn't give it that much thought.
If you figure out some way to do it, you'd single handedly solve playing any media type in the browser again, without the use of npapi plugins (if it plays smoothly ofc)
Hi,
Is there a way to use wcjs with just node.js? Create a player on the server and pass each frame to a the client to be rendered on HTML5 canvas (with browersified webgl-video-renderer).
I'm trying to just that, and it seems to be working for the most part. I'm using socket.io to pass the frames from server to client, but I'm not able to do that in onFrameReady for some reason. The client doesn't recieve anything.
Has anyone tried using wcjs with just node? Is what I'm trying to do possible?
Thanks in advance.