Video

Adobe Media Encoder CS5.5

Posted in Video on May 20th, 2011 by Ian Ford – 2 Comments

So apparently media encoder 5.5 has a pretty sweet new feature.

If you look closely at the bottom panel, you’ll see that it lists “watch folders.” A checkbox at the top right of the window will allow you to auto-encode the contents of watch folders. This could be pretty useful for automating video encoding. Very sweet.

A Note on Web Video

Posted in Article, H.264, Links, Video, WebM on January 11th, 2011 by Ian Ford – Be the first to comment

Apparently Google just announced that Chrome will no longer be supporting H.264. This is obviously controversial for a number of reasons.

I caught an interesting article predating the issue discussing the problem with using H.264 to encode your video. It’s worth the read.

A Memorable Advertisement

Posted in Advertising, Video on December 8th, 2010 by Ian Ford – Be the first to comment

I love this PlayStation commerical:

Apparently it’s destined for Latin America. The rest of the world seems to get much better advertisements than we do.

Adobe MAX Session Videos

Posted in Adobe MAX, Announcements, Article, Conference, Video on November 13th, 2010 by Ian Ford – Be the first to comment

As I probably promised before in the post announcing my itinerary for Adobe MAX 2010, I now have video for all of the sessions I attended.

Deep Dive into Mobile Development with the Flex SDK

Deep Dive into Flash Player Rendering

Creating Testable Flex Applications

Performance Tips and Tricks for Flex  and Flash Development

Having Fun with Layouts in Flex 4

FutuRIA: The Convergence of Rich Internet and Enterprise Applications

Vidiot: Now With Sprint 10, Edgecast Support

Posted in Announcements, Downloads, FLV, Frameworks, OSMF, Sprint 10, Video on May 4th, 2010 by Ian Ford – 1 Comment

I’ve just updated Vidiot to use the Sprint 10 release of Adobe’s OSMF, and I’ve added a bug fix that will allow streaming video from Edgecast.

To view a demo, check out my original post. The latest files, along with a sample application, can be found by clicking here.

For your consideration

Posted in Advertising, Article, Video on April 27th, 2010 by Ian Ford – Be the first to comment

I present the following two commercials, demonstrating the same basic product.

Perhaps I’m a cynic. Perhaps I’m completely out of touch. One thing occurs to me immediately upon watching these advertisements: Why the hell should I want to post to facebook or twitter while I’m watching television? Even if I did, would my television be a good tool for the job? This all reads like the wrong product in the wrong place to me.

It’s clear that communication and leisure are undergoing dramatic changes in step with technological progress, trending towards convergence around do-it-all devices equipped to help us navigate the glut of data we’ve grown accustomed to consuming, but where should we draw the line?

It’s not that I feel that either television or twitter is so sacred that the comingling of the two is either offensive or unforgivable, but rather I wonder whether there is any longer such a thing as undivided attention? I think it’s quite possible that we’re too plugged in.

What’s more, I hope the fact of the matter is that companies like Verizon and their competitors just don’t get it, and that products and services like the ones advertised above fail miserably. I hope that most consumers, whatever I may generally think of them, see through this for the pathetically impotent offering that it is.

Blogging directly from Flickr?

Posted in Links, Video on March 15th, 2010 by Ian Ford – Be the first to comment


play clothtylophone

Originally uploaded by _syano

Flickr has given me the option of sharing a video I liked by blogging it.

If you can see this now, it’s only because the service really works. Cool stuff.

Oh, and the item depicted in the video is wonderful.

This is breaking my layout though. Hmm….

Vidiot – A Wrapper for Adobe’s OSMF

Posted in API, Downloads, Flash, OSMF, Video, Vidiot on March 6th, 2010 by Ian Ford – 3 Comments

I’ve been working, over the last few weeks, with Adobe’s Open Source Media Framework. The OSMF is Adobe’s initiative to provide a standard set of tools and interfaces for deploying video content on the Flash Platform.

The framework is built loosely according to a MVC pattern, in which the Model consists of various MediaElements, the View consists of a MediaContainer, and the Controller consists of a non-displayable MediaPlayer class. As of its current release (Sprint 9), methods of implementation are so varied that it’s hard to find reliable documentation or concrete examples of how to use many of the components of the framework. This makes it difficult to work with so far, but the capabilities being planned and exposed for the project make it very exciting to jump in and start coding.

Today I connected to the project SVN, updated to the latest revision, and jumped back into developing a wrapper that I originally began planning for Sprint 8. I’ve implemented a very simple class based on the latest revision of Sprint 9 which I’m offering you today. I’m calling the project Vidiot to reflect my hope that it will be so easy to use, even an idiot will be able to display video in Flash.

The demo above uses the Vidiot class to play a sample streaming video hosted by Akamai. Layout and playback controls are separate from the Vidiot class. The simplest use case for Vidiot looks like this:

var vidiot:Vidiot = new Vidiot();
addChild(vidiot);
vidiot.load("video path");

At this stage, it doesn’t really get any more complicated than that. You can use Vidiot to play either progressive or streaming video (though thus far I’ve been unable to stream from Edgecast. Hmm….), and in theory this thing is also set up to play audio or still images as well, though I’ll have to test that out and probably update some of the code.

I hope to continue to release new versions of Vidiot and keep it up to date with the latest builds of OSMF. If all goes well you’ll see more posts about this in the future.

Download sample video player and Vidiot source code

UPDATE: Vidiot has been updated. Check out the most recent post.

Bugs and Quirks – RichFLV Metadata

Posted in Article, Bugs, FLV, Tips, Video on March 1st, 2010 by Ian Ford – 4 Comments

If you’ve been reading things around here recently, you may recall that I posted an entry filled with glowing praise for RichFLV. I had been aware of the application for some time (it was one of the first AIR apps I saw receiving significant praise/attention), but had only started using it several weeks prior in my own development efforts.

In the time since then, my company began making heavy use of RichFLV for a large project I’ve been developing. The project required tons of external video and animation, and I had decided that the best way to synchronize the two was to use FLV embedded cuepoints as controllers for external SWF content (FLV, SWF, cuepoint -> frame label). Because of the volume of video we’ve been dealing with (around 2gb), the idea of being able to dynamically modify cuepoints without having to rebuild video seemed like an obvious win for us.

To say the least, there have been complications. I have three complaints with RichFLV at this point. One of them is a minor inconvenience and the other two are potential deal breakers.


Really? No Native Drag and Drop?



The first problem is quite simple and amounts to more of an inattention to detail than anything. RichFLV doesn’t support native drag and drop for playing video files. It may sound like I’m nitpicking, but when you’re dealing with several hundred video files buried in a complex folder structure, having to go to the “file -> open” dialogue to change files becomes a quick annoyance.


Cuepoint Confusion?



The second problem is that, once in a while, RichFLV completely screws up your cuepoints. On the one hand, it will often duplicate cuepoints at incorrect time codes (see cue12, appearing twice, the first of which has the same timecode as cue 11), and on the other hand it frequently refuses to designate cuepoints correctly as event or navigation points (see the final cue12). Generally we give our cuepoints distinct, meaningful names so that when they fire we can respond to them intelligently. It’s easy to see how the problems highlighted above prevent that.


Funky Metadata?



The final problem has to do with the metadata that RichFLV generates. There’s a little bit of backstory required for this one.

At the same time that this project was starting, I and my colleagues had taken an interest in the Open Source Media Framework and had planned to build a new video player around it to use with projects in the future. The inclusion, specifically, of Parallel and Serial media elements built into OSMF seemed like a great fit for the needs of this project. We decided to proceed with development of our video player and to deploy it in this project as it reached a usable state.

It didn’t take long before we were having major problems (with our Video Player!). We were consistently unable to get the OSMF to play videos with embedded cuepoints, even though we’d seen plenty of examples of it doing just that. The specific error we were receiving was as follows:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: org.osmf.net.dynamicstreaming.DynamicNetStream was unable to invoke callback onMetaData. error=TypeError: Error #1034: Type Coercion failed: cannot convert Object@3ca86769 to Array.

You’ll notice that the framework was unable to correctly invoke it’s “onMetaData” handler. Generally when you deploy video in Flash, you first wait for metadata to be made available so you can scan it for important information about the file, and for information about cuepoints. When attempting to playback FLV files in which cuepoints had been embedded with RichFLV, we received this error every single time. In fact, it didn’t even matter if we went back and stripped all of the cuepoints from the video. Once RichFLV touched the metadata, the video was effectively “broken.” We struggled with this error for days before eventually dropping the idea of moving forward with OSMF. Instead we had to fall back on another (self-created but very outdated) video player to complete the project.

Now, I have little (if any) experience with generating or encoding video, but I was so frustrated by all of this that I spent some time today digging  through the flv file format specification. The first thing I noticed was that RichFLV was providing incorrect values for the CodecID property of the FLV file format (specifically 4 for On2 VP6 rather than 5 for On2VP6 with alpha). Furthermore, I discovered that if I reencoded my FLVs using Adobe Media Encoder (which should understand the FLV format) rather than RichFLV, all of my problems disappeared. Go figure.

None of the above is necessarily meant to dissuade you from using RichFLV if you find it useful. As far as I can tell, the original developer hasn’t released a new version of it in well over a year, and this thing has been around since AIR was still called Apollo. Hopefully these bugs will get more public attention and the developer will be prompted to update the app or disseminate the source code so somebody else can pick up development on what otherwise has been a great and useful application.

Three Reasons to be Excited About Flash Player 10.1

Posted in Announcements, Article, Downloads, Flash, Flash Player, Flex, Video on February 22nd, 2010 by Ian Ford – Be the first to comment

So, beta versions of Flash Player 10.1 are already available, and a formal release is on the way. Which three features am I most excited about?

1. Global Error Handling

I’m planning on doing an article soon on error handling in Flash, but by the time 10.1 launches I’ll have to write another to highlight this great new feature. I’m consistently shocked by the number of unhandled flash runtime errors I encounter while browsing the web. Hopefully the addition of this feature will make it easier to handle some of them.

2. Out of Memory Management

Currently, it isn’t very easy or convenient to manage memory usage in Flash. This feature, while not making it explicitly easier, will at least allow swf content to fail more gracefully without obliterating the user’s state.

3. HTTP Streaming

Could it be true? Will I actually be able to legitimately stream video without having to pay companies like Brightcove and Edgecast to host it, and without having to install a streaming media server? If this is everything I hope it is, it will empower developers working on a smaller scale (me, for example) to deliver improved video experiences without breaking the bank.

This list is, of course, just a small selection of what I’m excited about. A full detail of the features that are on the way can be found here.