Category: Software Experiential Development

Google O3D browser plug-in

At Mediastation one of our specialties is the production of real time 3D content but over the last few years we have experienced difficulty in delivering high polygon real time content to web browsers due to fall in popularity of Shockwave 3D and the lack of a suitable hardware accelerated browser plug-in to replace it.

After Adobe serious failings (far too many to list) of the ever so long awaited Director 11/11.5 up until now we have been no closer in finding a replacement. The only real contender being Unity 3D, but we’re yet to find a project with a client happy for their users to have to install this lesser known plug-in. In fact this year so far all of our web based real time 3D projects have been delivered using Flash 3D technologies such those brought by flash player 10 and third party engines such as Papervision 3D. Whilst this has been used to amazing effect in terms of 3D detail it’s been a step backwards due to the lack of 3D hardware acceleration in flash player.

Enter Google O3D:

http://code.google.com/apis/o3d/

Essentially its java scripted OpenGL, unfortunately the technology is not quite ready for use. The tech demos are reasonable and showing some promising features, but the thing that’s got us excited is in the name - Google! According to keynote speaker Michael Jones at GeoWeb in 2008 Google Earth at the time had 400 million users - that’s more than people in the United States! If Google pushed they could probably have the O3D plug-in installed on most PCs in no time and we certainly feel clients would be much more accepting of a plug-in backed by the mighty Google.

At Mediastaion we always like to stay ahead of the game by being the first to use the latest in multimedia technologies. We all ready have our 3D developers assessing O3Ds capabilities and will be watching this space closely to see if O3D becomes the plug-in we have been waiting for!

F4V Cue Point Solution

I have produced a simple to use workaround (you saw it here first) to enable cue points in F4V files.

I came up with the solution after the same question came up in the office twice on separate occasions:

Why are my F4V cue points not working?

The first time it came up I was shown CS4 media encoder with cue points clearly in place, but the cue point events did not appear to be firing in flash.

With a bit of googling we found the following article from adobe entitled “Cue points for FLV and F4V video files”, perhaps we were doing something wrong?

But then at the at the bottom of the page in the comments we found a link to the adobe tech note:

F4V-format video exported from Adobe Media Encoder CS4 does not contain cue points”

Reason:

“The F4V format is based on the format specified by ISO/IEC 14496-12: ISO base media file format which is not specific to Flash and does not have native support for the cue points that the FLV format uses.

So we gave up and used a FLV.

Then the question came up again this time it was pointed out to me the fact that when imported to flash the FLVPlayback component inspector clearly showed the cue points added in CS4 encoder showing up in the component inspector! The cue point events still where not working but this finding meant the data had to be in the file.

After some experimentation I found that the cue point information was being stored in the XMP metadata, this data is available in flash at runtime using the onXMPData event.

Whilst researching XMP I came across this useful adobe page “Using cue points and metadata” whilst detailing how to parse cue points from the XML it also further reinforced by use of a table f4v not supporting the onCuePoint event.

Runtime F4V FLV
Flash Player 9/ AIR1.0 OnCuePoint
OnMetaData
Flash Player 10 OnCuePoint
OnMetaData OnMetaData
OnXMPData OnXMPData

The Solution

I wanted to come up with a simple fix for non-codey types to use.

The solution uses a single action script class file XMPCuePointClient.as that you can place with your FLA it can then be enabled using two lines of code:

import fl.video.VideoPlayer;
VideoPlayer.netStreamClientClass = XMPCuePointClient;

The class works by parsing the XMP data and inserting FLVPlayback action script versions of the cue points. Cue points can then be consumed using usual code something like:

import fl.video.MetadataEvent;
function onCuePoint(e:MetadataEvent):void
{
trace(e.info.time,e.info.name,e.info.parameters.typeConverted);
}
myFLVPlayback.addEventListener(MetadataEvent.CUE_POINT, onCuePoint);

Worth noting with this solution is the cue point types are converted to actionscript, but the class does store the original type (event|navigation) in parameters.typeConverted.

A sample fla, f4v video, and the XMPCuePointClient.as file can be downloaded here:

XMP Cue Point Client.

If you find this code useful please return the favour by giving us a web link on your site or blog.

Real Time Software Chroma Key Update

Today we rolled out the latest update to our proprietary chroma key for live event software. This unique software solution allows non-experts to run live chroma key applications with little more than a pc and a camcorder. It forms part of a modular software system we have developed for constructing bespoke interactive experiences for exhibitions, events and festivals

Software Chroma Keying

Our most popular configuration allows visitors to be put “in the picture” by being photographed and filmed at the event. The participant is given a photo to take away and a download code to go online and view the video from your website, this can in turn be distributed to friends through online social networks. This adds great value to event marketing not only driving customers back to your site at the highest conversion rate but also injecting a viral element to the campaign.

To find out more about the creative ways our technologies are being used for experiential marketing please contact us.

Mediastation Creative Solutions Ltd