Jan
22
flash_media_server.pngIn a recent press release, Adobe announced that it would publish the specification for it's Real Time Messaging Protocol (RTMP). The protocol is used to transfer messages between Flash servers and the Flash Player for Rich Internet Applications and high-performance streaming audio and video.

The proprietary protocol has never been published. As a result, third party's have been left to reverse engineer the protocol in an effort to develop alternative yet compatibile solutions to Adobe's own line of Flash Media Servers.

Vendors like Wowza and the open-source project Red5 will benefit greatly from this announcement. I predict that there will also be a slew of alternatives to these as well as a few specialized implementations of the spec.

The announcement comes at an interesting time. Adobe's recent partnership with Intel to bring Flash-based streaming video to the living room means that they need full community support behind Flash and it's messaging technology, RTMP. It also means theres plenty of opportunity to create all kinds of new services that weren't easily achievable because of high server software costs.
Jan
10
SpringPlayer-2.jpgVersion 2.0 of SpringPlayer is now available. This Flash-based video player supports all the latest video standards in the Flash platform including H.264/AAC and HD. The player is available in two editions, Free and Professional. Both are based on the same code, but the Professional Edition includes support for Javascript control of the player, RTMP support and full source code. The Free edition is available under a creative commons license while the Professional edition is available under a commercial license from Flashcomponents.net.

KEY FEATURES

H.264/AAC & HD Support
The player requires Flash 9.0.115 and higher and supports H.264 (including HD material using main or high profiles).

Containers Supported
Can playback video in FLV, F4V, MP4, M4V and MOV containers.

Auto Scaling
Will automatically scale the video to the highest possible resolution while preserving the videos aspect ratio, or can simply scale to fill the dimensions of the player window.

Progressive and RTMP Streaming (Professional Version Only)
Supports both progressive downloads from web servers, and RTMP via Flash Media Server and Red5.

Easy To Use Interface
A symmetrically elegant user interface presents the user with only the most used controls in both windowed and fullscreen modes.

Fullscreen Support With Controls
Users have access to the same easy to use interface while in fullscreen mode.

Javascript Control (Professional Version Only)
Several functions are controllable via Javascript including volume, playing, pause, seek, timing information and loading another video.

Small File Size
The player weighs in at just under 13KB for the exported SWF.

Saves Volume Settings
When a user changes the volume of the player, the settings are saved. The next time they play a video on your site, their settings will be used.

Full Sources  (Professional Version Only)
Separate FLA and AS files included for CS3 and higher. Only two lines of code exist on the FLA's stage making it very easy to modify the look of the player without worrying about code modifications.

Visit the SpringPlayer project page for more details or to watch a demo of the player in action. You can also download the player and use it free of charge on your own personal or commercial site.
Dec
20
SpringPlayer_leftside_interface.jpgI'm beginning to work on a rather large video project and have evaluated close to a hundred different players including both the commercial and open source varieties. Long story short, I didn't find one that met my needs, entirely. With that, I started creating my own. The result is SpringPlayer v1.0.

SpringPlayer is an Adobe Flash-based video player written in Actionscript 3 that targets Flash Player 9.0.115 and higher. There were three design goals of the player:

  • Focus on usability to deliver a player that's functional, elegant and easy to use.
  • Create a player that's small and compact and requires minimal time to download.
  • Make it free for the world to use.
With this simple criteria, I've created a player with the following features:

  • Written in Actionscript 3 targeting Flash Player 9 and higher.
  • Compact filesize of only 13Kb.
  • Supports HTTP progressive download.
  • Fullscreen support with controls.
  • Plays back FLV, F4V, MP4 and some MOV's.
  • Videos can be resized to fill available screen or can maintain aspect ratio.
  • Supports any aspect ratio (4:3, 16:9, 1.85:1, etc).
  • Simple and easy to integrate into virtually any website.
As of this entry, SpringPlayer does not yet support RTMP, but will in early 2009. Support for Flash Media Server 2.x/3.x, Red5 and Wowza are in process as well as a lot of code optimizations. The goal is to add some additional functionality while decreasing the filesize of the SWF. Currently it weighs in at 13Kb which is significanly smaller than players written using Adobe's own FLVPlayer component.

Visit the SpringPlayer project page for more details or to watch a demo of the player in action. You can also download the player and use it free of charge on your own personal or commercial site.

Aug
24
MT-CumulusMT-Cumulus is a Flash-based tag cloud for Movable Type. It is written as a plugin for MT 4.x and is a direct port of Roy Tanck's popular Wordpress plugin.

For an overview, usage, screenshots or to download the plugin, head on over to the MT-Cumulus project page.

MT-Cumulus displays tags on a rotating sphere. A users mouse controls the direction and speed of the sphere allowing them to interactively navigate the tag cloud.

MT-Cumulus features:
  • Enable/disable on a per-blog basis
  • Set width and height
  • Set foreground and background colors
  • Set rotation speed
  • Set number of tags to display in cloud
  • Set minimum and maximum font sizes
  • Can use tags and blog categories in cloud
  • Includes SWFObject
  • SEO techniques used
  • MT-Cumulus v1.0.0 is based on WP-Cumulus v1.13
Aug
17
The Projects page on my site has been under 'development' for quite some time now. Actually, it was more neglected than 'under development'. Well, I'm pleased to announce that it IS actually under development and nearing completion. Several projects are listed with overviews and screenshots of each, and as always, if you have a project that you feel I might be interested in, please contact me.
Aug
15
toe_tag.jpg
Wired published a very interesting article entitled 'Fitting Network TV for a Toe Tag'. The article describes the slow-but-sure death of Network TV in its current form. In summary, the article gives many reasons why Network TV will die, but the number one reason is that '...niche is the new normal'.

I couldn't agree more. The days of networks dumbing down content for the masses are numbered. They've been over for quite some time for myself personally. As a consumer of niche television and Internet programming, most of the content I consume is short format video podcasts or medium to long format audio podcasts.

There's a growing number of content producers in various genres of niche programming. Anything from photography, video editing, ruby programming, automobiles, to crochet is available online, and for free.

The issue that will arise however, is how and where do niche content producers publish their content? This is a fitting question because creating the next Revision 3 is not a small task, and publishing content to social/video sites like Youtube doesn't do much for the image of the producer nor does it monetize their content all that well.

All of this leads me to the reason for this posting. In the coming weeks and months, I'll be posting details about a project I have been working on for some time now. Stay tuned...

Aug
06
On July 2nd, 2008, I was interviewed by Karen Greenwood Henke from Nimble Press about the future of Video on Demand in public education. The interview took place at the National Educational Computing Conference in San Antonio, Texas. Here's a link to the article which is posted on the Long Tail Learners Blog.

Get the Flash Player to see this player.
Aug
04
One of my many frustrations with Windows has been that over time, the entire operating system slows down considerably. This is possibly due to user profiles, or registry and file-system fragmentation. Whatever the case, it's quite sad that on an older system, the old adage about going to grab a cup of coffee while the system loads still holds true. This complaint has been going on for over a decade, yet it still exists. (sidenote: btw, this is one of the many reasons why I no longer run Windows, leaving the dark side completely.)

But I'm not here to bash Microsoft, or any other OS manufacture for that matter. Maybe there's a completely legitimate reason why systems slow down, although I've never experienced this with OS X or Linux. What I do know is that in the early 80's my Commodore 64 would turn on and it would be ready, just waiting for me to type in code into its Basic interpreter. Why did this happen? Let's see, no moving parts (i.e.: hard drives), smaller operating system, OS loaded in ROM, the list goes on.

So what if we could have a similar user experience (minus the Basic interpreter thing) today? I think it's possible but it would require the participation of both hardware and software vendors to agree on a spec. What spec? I'll tell you... A three stage flash memory spec.

Three Stage Memory

First off, let me express that i'm not an engineer, nor am I up-to-date on any of the latest memory advances. But what i do know is that the current way of doing things whether it's booting from a hard disk or a SSD, isn't working. Essentially what currently happens is that the operating system, applications and preferences are stored on medium and read into RAM where the processor fetches the instructions and executes them. Every time you turn on your computer the same thing happens, even if nothing has changed. This seems rather silly to me.

The Three Stage or TSM contains three separate flash memory banks, Base, Preferred, and Running.

Base-Stage Memory

The contents of this memory is written by the computer manufacture and contains the operating system in a running state and drivers for the hardware that shipped with the system. The content of this memory does not change and is similar to ROM.

Preferred-Stage Memory

This memory is reserved for the preferred state of the machine upon boot. This will be the delta of the Base-Stage Memory. That is, whatever has changed since the Base-Stage will be stored on the Preferred-Stage. This stage can be changed by the end user by a hardware selection located near the power and reset buttons on the front of the computer. By pressing the button, a user creates a new Preferred-Stage Memory configuration. The next time the user boots their machine, it will load to this new state. If the state ever becomes corrupted, the Base-Stage will take precedence. In this regard, the computer will always have an OS and drivers available to it.

Running-Stage Memory

This is the equivalent of today's RAM. This memory is ever changing but is not involved in the bootup sequence at all. If the computer gets infected by malware or viruses, it only affects the Running-Stage Memory. The next time the computer boots, the Running-Stage Memory is erased and the contents of Base and Preferred are loaded.

Bootup Sequence

After POST the BIOS would load the contents of Base-Stage Memory. This is a running operating system and drivers for the hardware that shipped with the system. This is a nearly instantaneous process, after which the Preferred-Stage Memory is loaded. Again, this is nearly instantaneous. At this point, a running operating system, drivers, and preferences have been loaded. Whatever changes have occurred since the load of the Preferred-Stage is loaded by the Running-Stage. Launching applications, etc, take place in this memory space.

Changes Required

This type of architecture has so many advantages in both security, reliability and in enhancing the user experience. But it's not something that could be pulled off overnight. Hardware specs would need to be created with the help and support of the OS manufactures. Changes to the OS would be required including storing preferences, removing the need for journals, etc.

What Do You Think?

Are there any systems out there that implement this type of approach? Has this design been thought of before? I don't know. But it seems to me that this approach is far better than what we have now.

Apr
07
Handbrake is a fantastic application for converting standard definition DVD's to another format. In my case, I use it to encode to AppleTV (H.264/AAC/AC3). I've followed the development of Handbrake for some time now, but until recently, it's been too buggy or incomplete for me to use. That all changed when version 0.9.2 was released.

roswell_intro.jpgUsing Handbrake, I can decrypt, rip and convert to MPEG-4 in one simple step. One of my test videos for encoding applications has been the TV series Roswell, which aired on both the WB and Fox network about eight years ago. One of the reasons I use this as a test is that the content was originally shot on film (23.976 fps) and was telecined resulting in 29.97 frames per second. The shows typically loose cadence quite frequently resulting in a good test for IVTC filters. There are always a lot of both horizontal and vertical movement as well as dark (or black) scenes which can be quite difficult for the encoder to process.

After many tests, I'm posting what I feel like are my ultimate settings. Some people use handbrake to make smaller, transportable files. Others use it for conversion to mobile devices. I use it with the intention of playing back an exact (or very close representative) copy of my DVD's on my Apple TV device. The only things I cared about when creating these presets were:

  • The content was standards-based MP4 (H.264, AAC)
  • Able to play back on Apple TV
  • Introduced little or no visual artifacts
  • Provided a Dolby Digital/5.1 surround track
Currently Handbrake does not have a method to import or export presents. So for the time being, you'll have to locate the UserPresets file (~/Library/Application Support/HandBrake/UserPresets.plist on a Mac) and add the contents of the download after the last </dict> in the file. You can download my custom preset here.
Apr
04
August 24th, 2008 - This blog entry is outdated. Please visit the MT-Cumulus project page for a proper Movable Type 4.x plugin of this very popular Flash-based tag cloud. View the MT-Cumulus 1.0 announcement.

No doubt, the availability of plugins for Movable Type is few and far between. After searching for a Flash-based tag cloud for Movable Type 4 and finding no results, I finally gave up. Instead, I focused my energy on finding a similar plugin for WordPress and adapting the implementation for use with Movable Type. The result is WP-Cumulus developed by Roy Tanck which is now successfully running in MT.

Being new to MT, I did not know how to create a plugin, so I opted for the implementation instead. For those of you interested in using this excellent plugin on your MT blog, create a dedicated widget and call it say 'Tag Cloud - Flash'. Then in your layout, include this widget. The only file you'll need from the plugin, is the actual swf file. The rest of the files are WordPress specific and you can discard them.

Here's my code for 'Tag Cloud - Flash'
<div class="widget-tag-cloud widget">
<h3 class="widget-header">Tag Cloud</h3>
<div id="tagcloudflash"></div>

<script type="text/javascript">
var tags = "<tags>";
<mt:Tags limit="30" sort_by="rank">
<mt:If tag="TagRank" eq="1"><mt:SetVar name="font" value="18pt" /></mt:If>
<mt:If tag="TagRank" eq="2"><mt:SetVar name="font" value="16pt" /></mt:If>
<mt:If tag="TagRank" eq="3"><mt:SetVar name="font" value="14pt" /></mt:If>
<mt:If tag="TagRank" eq="4"><mt:SetVar name="font" value="12pt" /></mt:If>
<mt:If tag="TagRank" eq="5"><mt:SetVar name="font" value="10pt" /></mt:If>
<mt:If tag="TagRank" eq="6"><mt:SetVar name="font" value="8pt" /></mt:If>
tags += "%3Ca+href%3D%27<$mt:TagSearchLink$>%27+class%3D%27tag-link-66%27+title%3D%27<$mt:TagName$>%27+rel%3D%27tag%27+style=%27font-size:+<mt:Var name="font"/>%3B%27%3E<$mt:TagName$>%3C%2Fa%3E%0A";
</mt:Tags>
tags = tags.replace(/\?/g, "%3F");
tags = tags.replace(/&amp;/g, "%26");
tags += "</tags>";

var so = new SWFObject("/scripts/tagcloud.swf", "tagcloudflash", "365", "365", "7", "#292929");
so.addVariable("tcolor", "0xEBAF00");
so.addVariable("tagcloud", tags);
so.write("tagcloudflash");
</script>
</div>

Alternatively, you can download my Tag Cloud Widget here.
A special thank you goes out to Roy Tanck for his work on this project.
Photo of Steve SpringettThis is the personal weblog of Steve Springett, a professional web designer and software developer who specializes in internet delivery of audio and video.
Facebook LinkedIn last.fm Hulu Twitter RSS

Copyright © 2009 Steve Springett