walid.kharro...@hraccess.com : > but do you think it's possible to implement a streaming service in xwiki > using groovy class with importing a streaming api(the streaming server will > be vlc for example)? >
Xwiki is better suited as a framework for creating and presenting streaming applications but not for the actual streaming implementation. It is correct to look at implementations specifically designed for streaming (e.g. VLC, Darwin <http://developer.apple.com/opensource/server/streaming/index.html>, etc) rather than trying to tame performance issues such as object/thread overhead,. out-of-memory and running out of threads -- common issues when many long-running streaming downloads occur in a servlet environment.. On the client end, Xwiki creates the HTML/CSS/javascript scaffolding, with streaming implemented via streaming "plugins" in the web-browser (e.g. mozilla plugin, a java applet or flash). These plugins could be accessed in Xwiki via special velocity macros that cleanly encapsulate all the scaffolding required to achieve this. The macro would allow easy parametrization and placement of these "streaming UI objects" in a Xwiki-based document/application. For example VLC has a mozilla broser plugin that you can control with a javascript API. http://www.videolan.org/doc/play-howto/en/ch04.html#id310965 suggests the following could be encapsulated within a velocity macro to implement this functionality: <embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" width="640" height="480" id="vlc"> </embed> <script language="Javascript"> <!-- var vlc = document.getElementById("vlc"); vlc.audio.toggleMute(); !--> </script> In my experience, it is straightforward to integrate these kinds of things with Xwiki, once you get adjusted to the possiblity of "computation" happening in three places and at different times: browser, server and plugin; and figuring out the dependencies and interactions therein. Unfortunately, from a pragmatic perspective, expecting your users to install VLC or other special browser plugins is the kiss-of-death. Most users will just blow it off and move on to something else that uses Flash and "works right out of the box" for the majority of users. (Therefore you can be doctrinaire about being "purely open source" and it just means you'll be strongly limiting your customer base and needlessly limiting your own project's potential for success). It would be nice to have a truly abstract streaming media macro that would implement the same generic API for streaming media within Xwiki. The macro would determine at run-time, whether the browser is enabled with specific plugins needed to display a specific media type (such as the VLC moz plugin); if not available, the macro would dynamically switch-in the flash-based equivalent for people using IE or who don't want to install the VLC moz plugin. For example given a "mp4", the macro would first attempt to use VLC, on failure it might try the platform's browser-embeddable media presenter if media-compatible (e.g. MS windows media), and would finally try a "generic" flash player such as the Jeroen "JW" Wijering players ( http://www.longtailvideo.com/players/ ). Who else is working on streaming media issues in Xwiki? Would love to see some group interest and coding participation towards better integration of streaming media in Xwiki. Niels http://nielsmayer.com PS: some of my work-in-progress on some streaming clients in Xwiki (not actual velocity macros yet, but at least they work). http://nielsmayer.com/xwiki/bin/view/Macros/JW-Player?raw=1 http://nielsmayer.com/xwiki/bin/view/Macros/YT-Chromeless?raw=1 _______________________________________________ devs mailing list devs@xwiki.org http://lists.xwiki.org/mailman/listinfo/devs