Flash Media Live Encoder for Mac Now Available!

Hallelujah - Flash Media Live Encoder (FMLE) is now finally available for the Mac platform. The Windows version was also updated, bringing both versions to 3.1.
FMLE now supports both Windows and Mac platforms and both tools are as usual available free of charge.
This latest version also adds supports for the new FMS 3.5 features which include Dynamic Streaming and live DVR. The ability of chunking of locally recorded files will also be very welcome to anyone who has ever had the misfortune to have to try and trim and/or edit FLV files of several GB in size.

The full list of new features is here.

You can download Flash Media Live Encoder 3.1 now.


Flash Media Live Encoder for Mac Announced

Up to now Adobe has been offering the free Adobe Flash Media Live Encoder (FMLE) only as a Windows tool - but this is soon going to change.

The recently announced FMLE 3.1 for Mac OSX will finally bring this essential tool to the Mac platform. This can't come soon enough as it has been requested for a very long time.

FMLE 3.1 for Mac will work with the built-in iSight camera as well as devices such as Firewire cameras and video capture cards to support a broad range of use cases and workflows. Like the Windows version, the Mac version of FMLE 3.1 will be free.

A release date has not yet been announced, but you can register an interest in a private beta by signing up here.


How Does Flash Access 2.0 Relate to FMS?

Jens Loeffler has published a nice little overview on his blog about the differences and similarities between Flash Media Server and Flash Access 2.0 a far as content and DRM mechanisms are concerned.

You can find Jens's article here.


DRM Capabilities To Be Added To Flash Player

Adobe will soon be adding DRM capabilities directly to the Flash Player, a feature that was previously only available through Adobe AIR, Adobe's cross-platform desktop runtime. The new feature was announced at IBC in Amsterdam today.

This is a fairly significant addition to the Flash Platform. While I'm not a fan of DRM, I understand that some content owners are very keen to add (what they perceive as) protection to their assets, and Flash will soon be capable to tick that box. The technology works in a similar fashion to the way in which the Adobe Media Player used to handle content protection: a DRM server called Flash Access 2.0 - which was also announced at IBC and which is basically a renamed release of Adobe Flash Media Rights Management Server (I'm glad that I won't have to type that name again!) - will handle the signing and protection aspects, while Flash Player can soon deal with the decryption and content access mechanisms natively. As mentioned above, this was previously only an option if Adobe AIR was used to build the client. I guess these new features and the demise of Adobe Media Player shows that end users prefer to consume content right inside the browser, and are less keen to install and use yet another video player onto their desktop. Those who prefer to use AIR to deliver their content can still do so as the runtime will also support the content protection features which Flash Access 2.0 promises. Here's the full press release.

Adobe Flash Access 2.0 is planned for commercial availability in the first half of 2010.


Tip for Debugging Remoting Calls in Flex Builder 3

Imagine the times when Flash Builder (Gumbo) was still in beta, times when the Network Monitor was still only a twinkle in the corner of a Flex engineer's eye. Imagine... your current day job, and a Flex 3 project with a bit of ColdFusion powered Remoting (other Remoting gateways are available) thrown in. Which is going wrong. And you need to debug the Remoting calls.
Ok, that doesn't require much imagination, I know. We know that Flash Builder will make our lives somewhat easier when it finally ships, but in the meantime your boss doesn't allow you to run beta software so what does one do besides coming to work for me? And maybe, just maybe, your boss is really mean (unlike myself) and won't even pay out for a license of Charles. So now what?

I present to you . It's a little tag tat does wonders to your Flex Builder 3 Console, and I don't know why it isn't being promoted much more. I've been using it for quite a while, and while I do not recall how I discovered it I am sure it's never too late to tell the world all about it.

So what does TraceTarget do? In a nutshell it outputs a ton of logging information into your Console when you debug your Flex project, and in particular it tells you a lot about the Remoting calls that you are undoubtedly making. Here's an example of my current project, first without TraceTarget added:

view plain
1[SWF] Users:stefan:Documents:dev:flex:fb3:demo:bin-debug:index.swf - 1,379,424 bytes after decompression
2result getUserDetails
Yeah, nothing basically besides one trace that I out in there to signal the return from CF. Now let's add to the main.mxml file and debug the app again:
view plain
1[SWF] Users:stefan:Documents:dev:flex:fb3:demo:bin-debug:index.swf - 1,383,632 bytes after decompression
2'9670B130-68C5-3D75-D251-3D30C4A99F2E' producer set destination to 'ColdFusion'.
3'F2AF48B3-896A-FA9D-D77A-3D30C4AF2A71' producer set destination to 'ColdFusion'.
4'8495032E-7DE7-49B1-124E-3D30C4EB0643' producer set destination to 'ColdFusion'.
5'8495032E-7DE7-49B1-124E-3D30C4EB0643' producer sending message '17E7B79A-6D4E-21C3-4F67-3D30C4EE538F'
6'my-cfamf' channel endpoint set to http://www.demo.com/flex2gateway/
7'my-cfamf' channel settings are:
8<channel id="my-cfamf" type="mx.messaging.channels.AMFChannel">
9 <endpoint uri="http://www.demo.com/flex2gateway/"/>
10 <properties>
11 <polling-enabled>false</polling-enabled>
12 </properties>
13</channel>
14'my-cfamf' pinging endpoint.
15'my-cfamf' channel is connected.
16'my-cfamf' channel sending message:
17(mx.messaging.messages::RemotingMessage)#0
18 body = (Array)#1
19 [0] "abcd"
20 clientId = (null)
21 destination = "ColdFusion"
22 headers = (Object)#2
23 messageId = "17E7B79A-6D4E-21C3-4F67-3D30C4EE538F"
24 operation = "getRoomDetails"
25 source = "api.v1.private.rooms"
26 timestamp = 0
27 timeToLive = 0
28'8495032E-7DE7-49B1-124E-3D30C4EB0643' producer connected.
29'8495032E-7DE7-49B1-124E-3D30C4EB0643' producer acknowledge of '17E7B79A-6D4E-21C3-4F67-3D30C4EE538F'.
301
31'9670B130-68C5-3D75-D251-3D30C4A99F2E' producer sending message '01B287E5-5EF5-1B40-75EE-3D30C648A026'
32'9670B130-68C5-3D75-D251-3D30C4A99F2E' producer connected.
33'my-cfamf' channel sending message:
34(mx.messaging.messages::RemotingMessage)#0
35 body = (Array)#1
36 clientId = (null)
37 destination = "ColdFusion"
38 headers = (Object)#2
39 messageId = "01B287E5-5EF5-1B40-75EE-3D30C648A026"
40 operation = "getUserDetails"
41 source = "api.v1.private.users"
42 timestamp = 0
43 timeToLive = 0
44'9670B130-68C5-3D75-D251-3D30C4A99F2E' producer acknowledge of '01B287E5-5EF5-1B40-75EE-3D30C648A026'.
45result getUserDetails

Pretty cool, right? You can read more about TraceTarget and other logging frameworks here. But if you just want a quick and dirty way to see some more debug info on your Remoting calls then you could do worse than simply sticking the TraceTarget tag into your main.mxml file and save yourself some hassle. It may not be as slick as Charles or the upcoming Network Monitor but it can be handy nevertheless. Have fun coding.


I Know You Know: Google is to Acquire On2 Technologies

I'm sure you've heard the news by now that Google is to acquire On2 Technologies, makers of Flix Standard, Pro, Exporter, Live, Engine and Directshow SDK, plus intellectual property holder of a whole range of video codecs which include VP6, a video codec that Adobe has licensed from On2 and included into the Flash Player (Flash includes a VP6 decoder - the only video encoder in Flash is still Sorenson Spark).
In many respects the VP6 codec played a huge role in the success of Flash video as it quickly became the codec of choice for anyone encoding Flash video for the web.

The Twittersphere is buzzing with chatter about the deal which sees Google handing over around $106.5 million - peanuts in Google's world, a company which is valued at over $150 billion (who really cares about a few billion here or there :).
I'm wondering what this deal means for Flash video and for HTML5. I guess that in the short term, Flash will be unaffected since there is now a clear move towards H.264, and existing license agreements with On2 should remain unaffected too. But what about HTML5? This new standard (which actually isn't one yet) is in real need of a *decent* video codec which is not burdened with royalty fees (as may or may not be the case with H.264).

No surprise that this deal is seen by some (mainly TechCrunch commentators) as yet another Flash (video) killer. Yawn. Others speculate that Google may open source one or more codecs, or make them freely available. That's speculation right now and I could see it go either way, there are many reasons for one or the other (or neither) to happen. We'll see.

Then there are Google's communication tools - a decent video codec is handy for those to say the least, and it's no surprise that Skype is one of the VP7 licensees.

This is a smart move by Google, and I'm actually surprised they haven't done this sooner. The price they paid seems a bargain too, and so Google will soon own the codec technologies which power the majority of web video today. We'll see what Google's plans are from here, but since they do no evil we have nothing to worry about, right? Right? Hello, anyone here?

The full press release can be seen here.


Screen Sharing With JScrCap in Action

Vivek Lakhanpal has posted an interesting entry on his blog where he describes his efforts on getting JScrCap, a Java based Screen Capture kit, up and running with both Flash Media Server and Wowza Media Server.
Vivek describes some of the intricacies when using JScrCap, and I'm quite sure that we will hear more about this tool in the future (I'll try it myself as soon as I get a chance) while the Flash Player keeps lacking native screen sharing support.
One point that Vivek makes is that you can only record files in mp4 format on FMS, not FLV. For more details, check out Vivek's post.


Open Source Media Framework Released (Formerly Strobe)

Adobe have today announced the open source release of the project formerly known as Strobe. The Open Source Media Framework (OSMF) provides a robust code base for media playback of any kind (video, audio, SWFs, images and more).
I've been briefly involved in the Strobe pre-release program and while I haven't built anything meaningful with it yet I have to hand it to Adobe for making a really great effort here. This framework is a solid foundation for any sort of media player that you may want to build, and since it does not tie you to a specific UI (quite different to what the FLVPlayback component provided) it gives you great flexibility for your own players. A set of APIs and plugin hooks allow you to also build your own extensions for the framework while maintaining compatibility with the underlying code base.

Admittedly the learning curve will be a bit steep for some but I have no doubt that we will soon see a few more packaged and easy to digest players pop up which can be used 'off the shelf'. I also expect all the major CDNs to release plugins for OSMF or document ways to interface with their backends - as we know, almost every major CDN currently has its own quirky way of connecting and playing a Flash stream.

There's more to OSMF than what I can cover here and I suggest you head over to the Adobe website and check it out for yourself.


Creating Automatic Transcripts in Flash Video Using Adobe CS4

Michael Hurwicz has published an excellent tutorial over at streamingmedia.com covering the creation of transcripts for use in Flash video.
In it Michael explains how you can use Premiere Pro, Soundbooth, Adobe Media Encoder, and Flash to to automatically generate a text transcript based on speech in a video, and then use that transcript as a captioning file within Flash.

One thing I'd like to point out (without actually having gone through the process myself) is that it may be preferable to keep the produced XML timed caption file separate from the video rather than embedding the cue points into the video, if that's what's happening. This would leave you more flexible if you had to, for example, provide multiple language tracks for one piece of video content, and even opens the door for switching the language of the transcriptions at runtime.

Check out Michael's article here.


Regular Expression to Validate URLs in ActionScript 3

I recently had a requirement for Scribblar (more on that site in another post) to verify if a domain name or page URL entered by a user is valid. Luckily ActionScript 3 features support for Regular Expressions, however my RegExp skills are non existent. So I reached out via Twitter to see if anyone could help. It took all of 10 minutes and a quick session on pastebin for Robert 'Da Man' Hall to sort the problem out for me. In order to preserve this nugget of knowledge for future generations, here it is.

view plain
1var regex:RegExp = /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i;

Usage

view plain
1var url:String = "http://www.google.com";
2var regex:RegExp = /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i;
3trace(regex.test(url)); // returns true if valid url is found

Thanks Robert!


Previous Entries / More Entries