The new Second Life Viewer 2 Beta finally allows integrating Flash-based apps onto Second Life prims (SL lingo for 3D primitives, such as cubes, etc) as textures through a feature called Media Sharing (nothing to do with Brightcove Enterprise Edition Media Sharing).
The nice thing about this is that every visitor will be able to stream individual videos, as opposed to the version 1 viewer that could only set a QuickTime Progressive Download url for all residents in a Second Life location.
Here’s a sample prim I’ve made in a sandbox that has been textured with the Sony MyPlay syndicated player and some navigation prims that would make sense in a 3D environment.
Adobe Speech Search is a function available in Adobe Premiere and SoundBooth CS4 that allows you to automatically transcribe spoken text in a video clip. In the screen shot above, you can see the metadata text transcription window on the right of the video loaded into Premiere.
The metadata can be incorporated into the video file as cue points, or can be exported to an XML file. The latter gives us some interesting possibilities for playback and navigation within a Brightcove Player.
The easiest way for a user to install a Brightcove plugin is through the player property window in Brightcove studio in stead of having to create a BEML templatethat loads the external swf. By default, this plugin interface is intended for invisible add-ons, such as an analytics connector. However, it is possible to surface plugins added in this way by getting a reference to the player’s Stage.
This article provides a sample player with a visible plugin added in this way as well as some sample code.
The example above shows a slow-motion control incorporated into a Brightcove Player using BEML. The full code is listed below. Read the rest of this entry »
In some cases, you may need to display subtitles in more than one language, or in different notations – but not necessarily for the entire video. The music video above illustrates this case: it sometimes has three subtitle text channels: Japanese Kanji, Romaji Transcription, and an English translation, but some of the song’s lines are only in English. In such situations, I believe it’s more efficient to use time codes and external subtitle text files than cue points, and to “compose” a joint subtitle text file server-side.
This BEML player uses a plugin that checks for external .srt file(s) for a video being loaded. As the .srt is a format that can be extracted from DVDs easily, it requires very little configuration other than a base URL and a file naming convention for the subtitles to be pulled in.
To show the per-video dynamic subtitle loading, I’ve also provided subtitles for the “Puffy – Dareka Ga” listed in related videos for this player.
This article will show you how to call an external JavaScript function from a BEML plugin loaded into a Brightcove player.
There are two parts to making this work: first, we need to create a BEML plugin, I’ve done this in Flex, and provided the framework for you to integrate any business logic you may want to trigger the JavaScript call by getting the references to the Brightcove Player. Read the rest of this entry »
This article describes how you can use SWF files as widgets in BEML that have been protected by utilities that prevent decompilation. Before we start, just a couple of things I’d like to point out:
This article is NOT a review of the effectiveness of SWF Protection tools, there are plenty of (endless) discussions on that topic on specialized forums.
This approach is NOT my recommended one for creating User Generated Content upload widgets. I still believe using a secured mid-tier upload server is a better model. Event with a protected SWF, a proxy tool like Charles or WireShark will give a hacker all the information he needs to get your token if you do not protect your sensitive Widget/Server communications.
Why would you do this?
The short answer is that the SWF format is a pseudo-compiled, documented file format. This implies that it is relatively easy to reverse engineer a SWF file. Just Google “swf decompilers” and look at the results. There are literally dozens of tools that allow anyone to retrieve the complete source code of a SWF. Regarding BEML Widgets, this may pose some security threats if for example you want to:
Create a video upload widget that uploads straight into your Brightcove account. Again, SWF protection by itself is NOT the approach I would recommend, as this requires including/sending a Write Token to use the Media API in your SWF.
Create a widget that interfaces with your backend and that contains configuration information you want to give some level of protection
Create a widget that represents a considerable investment or effort, and by consequence you want to protect from being duplicated
Had a little fun with this over the weekend. In another life I used my Amiga to superimpose Pong on MTV. Well, no need for that anymore in the 21st Century. This is the way Pong should be played. Gratz to anyone who can beat the computer while the Stakker video is playing!
Check this out: a progressive download video in a 3D environment, using Flash 10 and the Away3D library. The video player is wrapped as a surface texture on a cube and can be rotated real-time. The hickups in the video occur because this video is served from my own Apache webserver, not as a Brightcove stream, as the MovieClip is not a surfaced property…. Read the rest of this entry »
This example Brightcove Player is a BEML template in which I’ve inserted a Flex widget to add behavior to support parental control. It addresses several things:
How to take control over the video player to insert the control behavior
How to alternate between the video player and widget display
How to use video asset tags to set up the video rating