GithubHelp home page GithubHelp logo

rsatom / webchimera Goto Github PK

View Code? Open in Web Editor NEW
83.0 23.0 22.0 7.21 MB

[DEPRECATED] Web browser plugin based on Vlc + Firebreath + Qt Quick 2/Qml

License: GNU Lesser General Public License v2.1

CMake 10.52% Shell 0.29% HTML 0.92% C++ 78.59% Rebol 0.12% AppleScript 0.29% XSLT 3.01% C 0.02% QML 0.10% Makefile 0.15% Objective-C++ 5.64% Batchfile 0.35%

webchimera's Issues

Buffering state?

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.

Possible to load a local qml file?

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.

With webchimera, I cann't play mpg file in chrome,mp4 file is ok.

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

Can I add additional parameter to VLC?

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?

Always on top

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!

How to run after Build?

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"?

White Flicker when Scrolling Page

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.

node-webkit support

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.

Hide Mouse ?

Would something like vlcPlayer.hideMouse() and vlcPlayer.showMouse() be possible?

Needed to hide mouse when hiding the toolbar in Fullscreen.

Support RTMP

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?

QML - On Page JS Communication

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.

Project logo wanted!

If you want contribute by offering logo design for project - wellcome!
Logo design should be unique and free to use.

Thanks in advance!

Plugin area preload color

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.

Need donation for Mac mini...

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.

Video Stretch

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?

.length returns 0

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.

Plugin release issue?

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.

Youtube Playlist

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. :)

Which event is triggered on network error?

Steps:

  1. Attach function for both MediaPlayerEncounteredError and MediaPlayerStopped
  2. Play a network stream
  3. Shutdown network
    Result:
    None of the two events are triggered.
    The player keep repeating the last piece of the video

More QML - JS Communication Channels

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.

Video Pop Out?

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!

Mouse Scroll support

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.

Reproduce UDP streaming with CSA encryption.

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

.mediaDescription.title

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.

toggleFullscreen not working

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()
}

Playlist Skips One Element

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.