Parcel media
Media On A Parcel
The purpose of this project is to shore up and expand support for Media within Second Life. Currently we support a single Quicktime URL per parcel, which is used in place of a given texture. We plan to rewrite the underlying Media Library and expand it to support a wide variety of Internet Media types, such as HTML and Flash. Also we will support Media display in other areas of Second Life, such as the HUD and on individual Prims.
The Project will deploy in several milestones. The first of these will deliver the underlying re-architecture of the Media Library and support for HTML on a parcel. Subsequent milestones will provide for Media in the HUD, multiple URLs per parcel, and implement new Media Type support.
Design
- The Media Library will use common MIME types to map URLs to specific decoders in the Library.
- These will all be part of the SL Viewer Open Source project.
Media Setup
- The parcel owner will initially set the URL in the About Land dialog, and will add information such as Type and Media Size if applicable.
- They also specify the ID of the Texture to replace with this URL.
- This information is stored on the server side with the rest of the Parcel information.
- If the parcel owner is unsure of the media type a lookup can be done of the URL header.
Playing Media
- When a resident enters a parcel which has a media URL defined, an appropriate UI control pops up allowing the resident to load the media.
- When the resident invokes the media control the Media Library begins decoding the media based on the MIME type for the media.
- Frames will appear on any face displaying the texture ID specified in the Media Setup.
- Milestone 2 will also add support for displaying media in the HUD, so rather than being drawn in world, the media would appear on a UI widget displayed in the HUD.
Supported Media Types
- Implemented in Milestone 1
- QuickTime (refactor existing one and make sure we're using the latest version of the QuickTime SDK)
- Mozilla (Will use existing version that's in the client - updating that is another project)
- Implemented in Milestone 2
- Opera (Alternative impl for handling Web based content - based on Opera browser 9.5)
- Flash
- Implemented sometime in the future by us or ideally, by residents:
- PDF (perhaps via this cross platform SDK http://www.foxitsoftware.com/pdf/sdk/dll/)
- Ultra lightweight text renderer (perhaps via AntiGrain http://www.antigrain.com/demo/index.html)
- Ultra lightweight SVG renderer (perhaps via AntiGrain http://www.antigrain.com/svg/index.html)
- Flickr -e.g. flickr://keyword/dog/rand or flickr://interestiness/date/20070410/rand
- VNC
Use cases
Milestone 1
- Parcel owner wants to display some static signage on his parcel
- This can be done but the visitor will have to hit 'start' before they see it.
- Parcel owner wants to display dynamic content on his parcel - e.g. Twitter stream
- (once visitor presses 'start', this will work as expected
- Parcel owner puts a Web page containing a slide show that has transport controls built into the Web page
- This works but each parcel visitor will see the slide show independently. If one user presses 'NEXT SLIDE' control, no one else will see it.
- Parcel owner puts a Web page containing a slide show that has transport controls via a scripted object on the parcel
- Each parcel visitor will see the same URL
- Parcel owner puts a Web page containing a slide show that has transport controls via a scripted object on the parcel and wants to disallow visitors changing the URL
- [My lack of knowledge of LSL here means I can't answer this but I think it should be possible to only allow the transport control object (and therefore the URL) to be used by the parcel owner]
- Parcel owner puts a Web page containing a Flash game on his parcel
- The current version of LLMozLib doesn't support Flash interaction so this won't work.
- Parcel owner puts a Web page containing a Javascript game on his parcel
- This milestone doesn't support interaction with parcel media so this won't work
- Parcel owner wants to hide content behind a username/password set via .htaccess
- Won't work since we don't support username/password dialog - will have to implement using Web content
Milestone 2
- Parcel owner wants a movie screen and a Web page with movie details on the same parcel.
- Works - raises some interesting questions about transport controls that appear at the bottom of the screen
- Parcel owner wants to hand out personal, attachable media viewers for visitors to interact with their own chosen media streams: museum guide, lecture, mall
- User has a personal device which they want permission to set their own media texture for even when on a parcel which they do not have permission for - aka personalized radio, video viewer that works globally
Milestone 3a
- Parcel owner wants to leave a Web browser on their parcel so that visitors can browser
- Works as expected
Milestone 3b
- Parcel owner wants to create a controlled shared experience - viewing a sequence of images with next/previous links in the page itself
- Works as expected
- Parcel owner wants to join his fellow 'parcelees' and browse the Internet together
- Will work depending on the content but any page that is generated dynamically based on time, cookies etc. will most likely not work as expected.
Milestone 3c
- Parcel owner wants to join his fellow 'parcelees' and browse the Internet together
- Works as expected
Also: some ideas here: http://wiki.secondlife.com/wiki/User:Zero_Linden/Office_Hours/HTML_on_a_Prim_Use_Cases