rsatom / webchimera Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] Web browser plugin based on Vlc + Firebreath + Qt Quick 2/Qml
License: GNU Lesser General Public License v2.1
[DEPRECATED] Web browser plugin based on Vlc + Firebreath + Qt Quick 2/Qml
License: GNU Lesser General Public License v2.1
Now before QML skin provided to an object tag is loaded by the plugin WebChimera shows white rectangle. Since black color is more common for video background I suggest to use it on the plugin preload stage.
If the embedded video is on a page when you scroll the page, it starts to flicker a lot to a white color. I believe this might be related to Qt QML rendering because the only other time I see a white flicker is when a QML File or QML String is loaded into the player.
<param name="mute" value="true" />
Does not mute the video on start.
Hi,
Could you release the Mac binary on sourceforge ?
http://sourceforge.net/projects/webchimera/files/WebChimera%200.1.1/
Thanks in advance,
I know this may be far fetched, maybe even impossible, but I'd really love to see Webchimera have this feature at one point.
The video "Windowed Mode" (Pop Out) is a feature of the Divx Web Player:
http://www.divx.com/en/software/web-player/features
A Demo can be seen here:
http://www.divx.com/en/hevc-showcase
When the video goes in Windowed Mode it remains connected to the JS Api of the Page where the Plugin was called and starts directly in Always on Top mode (which is a must, cause we can't set Always on Top from QT QML and don't have the vlc right click options in the video).
This feature really gives Web Players a WOW Factor!
if setVideoSurface leave blank ?
I know the out-of-box VLC does not support RTMP. To support RTMP, user needs compile VLC source code himself.
to reduce binary size
Steps:
Checked the Playlist variables, they seem to work great, but for some reason when playback for an item ends, it skips the second item and starts the third one directly (I also tried this with 12 items in the playlist, it always skips one item).
Here is the demo and fiddler:
http://jaruba.github.io/WebchimeraGUI/editor/?demo=playlist
I tried this without the UI too (basic qml file), and it still skips it, seems to be something from Webchimera side, I think it worked before the last version. (.playlist.next() and .playlist.prev() work fine in this case though)
Also, when youtube videos are involved, the playlist behaves heretically.
Try setting:
myplaylist = ["https://www.youtube.com/watch?v=uUAYS26-xo0","https://www.youtube.com/watch?v=iP7BKHU4WUc","https://www.youtube.com/watch?v=ddtJVww8Zvw","https://www.youtube.com/watch?v=3019nJDXVKs"];
in JavaScript in the fiddler.
It always starts with last element (even considering that .playlist.playItem(0) is called in webchimera.js), .playlist.next() and playlist.prev() jump like their on shuffle the first few times their used (even considering .playlist.Normal is called in webchimera.js), etc.
If you go fullscreen on a Secondary Monitor, the fullscreened video feed will still go on the Primary Monitor
It would be great to be able to know when the user is using the mouse scroll. That way I could set volume control from mouse scroll like in vlc.
After removing object tag from the page plugin process is still alive.
Is it an issue? Is there any way to release plugin process without reloading a page?
Since today single-page applications are common it would be nice to add plugin release functionality.
I tried making Key Events without success, the QML loads but it doesn't catch any Key Presses. Maybe a Focus issue?
Here is my attempt:
jaruba/WebChimeraPlayer@e5b8d48
Demo for it:
http://jaruba.github.io/WebchimeraGUI/single.html
QML KeyEvent Element is documented here:
http://qt-project.org/doc/qt-4.8/qml-keyevent.html
I installed all the requirements (including WiX) and followed all the required steps for building. After I build in Visual Studio 2012, I can't find any .msi file, the only thing I can see of value is npWebChimera.dll (33kb) in "build_win\bin\WebChimera\Debug", but if I copy the new npWebChimera.dll in the current installation folder "%AppData%\RSATom\Chimera Web Plugin\0.1.6", I get the error: "Couldn't load plugin" when I try to use WebChimera on a webpage.
VS 2012 prints:
========== Rebuild All: 16 succeeded, 0 failed, 0 skipped ==========
in the output, so there doesn't seem to be any error.
What am I doing wrong? Why is there no msi file after I build "ALL_BUILD"?
Do you think you can make a few more events in JS + functions in QML like "QmlMessage"?
I'm thinking of one for mouse events, another for key press events and one more for button interactions.
All this might be able to be done on the same channel (QmlMessage), but mouse movement for example really crowds the channel and I'm wondering if sending 2 events in the same millisecond to QmlMessage might bug the event.
That way I could leave all events running at the same time and make a lot more comprehensive functions that hook up to each individual player event.
vlcPlayer.mediaDescription.title doesn't seem to return anything, (and even if it did, this wouldn't be data that is available at the begining of a streaming video or unloaded content, right?)
What I'd need is a way to get the filename and/or video title from playlist item number, something like .playlist.filename(i) in QML to get a text representation of the playlist items for the playlist menu.
I've checked this on a lot of different videos and streams just to make sure (more explicitly, multiple youtube streams, the direct online link to Big Buck Bunny and some video streams), in all cases:
vlcPlayer.Buffering always returns "undefined"
vlcPlayer.MediaPlayerBuffering() always returns "undefined"
vlcPlayer.MediaPlayerBuffering always returns "function() { [code] }" (this one is actually quite funny)
When starting the video, even for the first time, by checking the vlcPlayer.state variable, we see the video state always change in the same order: IDLE -> OPENING -> PLAYING -> OPENING -> PLAYING (this is when it actually starts playing)
So, I guess my question is, where is the buffering state? When the video has more to buffer, it usually stays in IDLE or OPENING for longer, and if the video needs to buffer while playing, just stays in PLAYING state while the video freezes for a few seconds (while buffering I guess) then starts again.
For example, I need stream h264 ES stream. So, I need ask VLC to use h264 demuxer, and also need specify FPS for h264 ES stream.
Using standalone version, this can be set in preference setting. How about WebChimera?
After I installed webchimera using the msi installer, where the related files are installed?
Not sure why the out-of-box VLC does not support RTMP protocol. I believe it's very useful for many users. Can WebChimera enable RTMP support when compile VLC lib?
It needed for developing OS X/iOS versions of WebChimera.
Also I plan to do build server for nightly builds for mac/linux/windows on it.
If you want to help - please contact me or use donate button on http://webchimera.org.
Thanks.
at least when there are only one item in playlist.
It seems webchimera does not recognize "windowless" mode?
It would be great to add this module.
Currently QT QML and On Page JS can both communicate to the WebChimera JS API but there is no way for QT QML to communicate to the On Page JS.
Wouldn't it be an interesting idea to create empty variables that can be set and read in the Webchimera JS API so that QT QML and On Page JS can write and monitor them in order to communicate to each other (maybe by encoding the data in JSON)?
There may be a better way of doing this, this is just the way I imagined it.
As of the utility of this, there are many reasons why the On Page JS and QT QML should be exchanging information for a better viewer experience, it opens the door to a whole new level of posibilities like new buttons inside the QML UI affecting the page directly (something that could only be done with the HTML5 Video Tag), or adding dinamic data from the page to the QML UI without reloading the QML Source of the plugin.
I modified the demo ( http://movault.net/webchimera/ ) for toggleFullscreen(), the HTML "Fullscreen Button" now uses toggleFullscreen() and works fine, but the QML fullscreen button in the toolbar doesn't work for some reason ( http://movault.net/webchimera/basic_2.qml )
You'll have to Alt + Tab and close the browser to exit fullscreen after using the HTML "Fullscreen Button".
I've installed the lattest version of WebChimera, while togglePause and toggleMute are working, toggleFullscreen is not.
Source:
MouseArea {
anchors.fill: parent
onClicked: vlcPlayer.toggleFullscreen()
}
vlcPlayer.length and vlcPlayer.input.length both return 0, even if the file is fully loaded.
I've seen this behavior on another vlc plugin lately, I've not tested fbvlc and vlc directly to see if the behavior is actually a bug of the vlc libraries themselves or not (although there's a great probability it is).
The actual length can still be reconstructed from .position and .time although the result seems to be more approximate then exact.
There is no event fired after player mute state changed. Is it possible to add such event in both QML and JS API?
I tried to load one of the demos on my local HDD, all relative paths are correct, but Webchimera doesn't load the QML file, also tried to put it in the same folder with the HTML file but it still didn't work.
Can Webchimera only load QML files through HTTP? Why not local files too?
This would be useful because I want to give the users the option to download the demos, but the demos won't work on their local PC's without local QML file support.
For example, please check the download button on this page:
http://www.webchimera.org/demos/default_skin
I did not check other demo yet ...
The plugin doesn't load qml files through https. As mentioned here:
http://ask.webchimera.org/32/using-protocol-https-causing-white-screen
If you want contribute by offering logo design for project - wellcome!
Logo design should be unique and free to use.
Thanks in advance!
Currently VLC does not support Youtube Playlist links, only Youtube Video links, if you try to insert a playlist link, it will only play the first video from it. (Checked in VLC 2.1.5 Ricewind too)
This means Webchimera can't accept Youtube Playlist Links either, so I was thinking if Webchimera could have this .lua file:
http://addons.videolan.org/content/show.php/+Youtube+playlist?content=149909
Inserted by default in the package, it would also be able to play Youtube Playlist Links. :)
How will the deprecation of NPAPI affect this plugin?
QML API mediaPlayerBuffering signal seems not to be emitted.
Hi,
My video is not displaying on all the screen.
Is it possible to stretch the video?
I am setting the width="100%" height="100%".
But what I see is that only the height changes and the width is set according to the aspect ratio(I think).
Is it possible to override this and stretch the video? (not to use aspect ratio)
If not - is it possible in windowless mode to use aspect ratio?
Hi,
It crashes on startup, do you know why?
thanks
Node-webkit is a great platform for developing cross-platform desktop apps using common web technologies.
Since node-webkit uses app://
protocol for application resources I suggest to add ones support for qmlsrc
tag.
the fbvlc is same with VLC, but the WebChimera use the double CPU.
Currently toggleFullscreen
method is global in QML. Wouldn't it be better to move it to the vlcPlayer
context?
Hi Tom, thanks for this good project.
I´m trying to embed the player to reproduce a UDP TS stream with CSA, but i don´t know if its possible to reproduce it. Is there any option available for CSA encryption?
Thanks!
Diego
Hi,
Do you have any idea of a workaround to enable that the plugin will not be always on top?
I tryed putting inside an iframe but it doesn't work.
Only in windowless mode it works but all the great features are not included in windowless mode.
Thanks!
Would something like vlcPlayer.hideMouse() and vlcPlayer.showMouse() be possible?
Needed to hide mouse when hiding the toolbar in Fullscreen.
With webchimera, I cann't play mpg file in chrome,mp4 file is ok.
I use rtsp protocol,like: rtsp://192.168.1.106:8554/test/test.mpg,but on your demo page,I typed my url,it can play the rtsp stream.
it seems lack of one file: qmldir
[01/May/2014 11:33:53] "GET /static/qml/basic_1.qml HTTP/1.1" 200 2318
[01/May/2014 11:33:53] "GET /static/qml/qmldir HTTP/1.1" 404 1634
[01/May/2014 11:33:53] "GET /static/qml/play.png HTTP/1.1" 200 199
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.