Accessing the mx_internal Namespace in Flex

This is a topic that comes up from time to time, and it did so for me on a current project so I thought to quickly sum it up again here.
I was working on a Flex project using an old SDK (4.1) and the OSMF-based Spark VideoPlayer component contained within. I had to use this particular player since the customer needed to target Flash Player 10.0 or above.

I'm unsure which version of OSMF this Flex SDK contained, but what I could see was there seemed to be no obvious way to set the bufferTime on the MediaPlayer instance that's contained within the VideoDisplay instance that's contained within the VideoPlayer due to the fact that the MediaPlayer instance was namespaced to mx_internal

view plain print about
1mx_internal var videoPlayer:MediaPlayer;

What does this namespace mean? It basically is Adobe's way of saying: "Watch out, this stuff right here is likely to change in a future version (of OSMF in this case) and if you mess with it then it may break in the future."

Well in my case it was worth the risk :-) and here's how you'd access the bufferTime property and use the mx_internal namespace.
At the end of all your import statement add this:

view plain print about
1import mx.core.mx_internal;
2use namespace mx_internal;

Then somewhere else in your code you can do this (where player is my instance of s:VideoPlayer):

view plain print about
1player.videoDisplay.mx_internal::videoPlayer.bufferTime = 0.1;

Suck this up and enjoy :-)

FMS/Wowza/Red5 Broadcaster App For Android

As one of the main contributors to the Red5 project, Paul Gregoire is a well known name in the community. Yesterday he posted a link to an AIR for Android app he built to the Flash Media List and I'm republishing his link here as I think many of you will find this app quite useful.

The Broadcaster Android app allows you to broadcast audio and video to an RTMP server such as Red5, and also works with FMS and Wowza. What's more, the app is free and will run on pretty much any Android device with Android 2.2 and up.

You can download the Broadcaster app from the Android Market.

But apart from being useful, the app also shows that AIR for Android can be quite versatile and allows you to easily publish what is essentially a Flex application to a mobile platform.

2012 - Onwards And Upwards

As 2011 is drawing to a close (seriously, where has this year gone?) I think it's time for a quick look forward.

It's been a turbulent year, especially for the Flash Platform. We have some ups, and definitely some downs, and at times it felt as if our beloved community was imploding. Some folks have moved on and are quite likely never to return - 'sinking ship' comes to mind. Whilst I'm not the captain of that particular ship, I certainly hold the rudder for my own little boat and despite what Adobe may want us to believe it is clear to everyone that Flash has had its peak. I feel a bit sad about that, and it's not really because of the technology but because of the aforementioned community; I just don't feel that I'll find the same mix of creativity, problem solving and 'thinking outside the box' spirit elsewhere. The Flash community has been and still is one of a kind and I hope it will stay that way in 2012 and beyond.

In terms of new technologies to pick up next year there are plenty to choose from. Too many almost, and I for one feel a bit overwhelmed at times. I have a feeling I am not alone.

[Read Full Article]

Thoughts On Flash - Revisited

Thanks to @bryngfors for pointing out what we all suspected all along: Apple is all talk and little action when it comes to supporting open standards. Prime example: visit trailers.apple.com without the QuickTime plugin installed and you see... not much in form of video. A plugin. On Apple's website? Good grief.

Now I'm not particularly bothered about browser plugins - I am after all of Flash heritage - but what bothers me is dishonesty. I mean come on, it's almost 2012 and even I as a seasoned Flash developer can tell you that it is possible to serve up web video these days without plugins. Isn't that what Steve Jobs told us? Remember the 'Thoughts on Flash'?

"We strongly believe that all standards pertaining to the web should be open."

Hmm, either QuickTime is open (hint: it isn't), or it's not a standard (that's my guess) or it's not pertaining to the web.

Here's another gem: "When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple's Safari and Google's Chrome without any plugins whatsoever [...]."

Let's put the fact that most Flash video is already encoded in H.264 aside - what's changed since April 2010 when Steve Jobs wrote those words? Adobe seems to have moved with the times quite substantially and are re-focusing efforts on open standards - but is Apple doing the same? If so, then why are they trying to prevent progress by teaming up with patent trolls? How come the W3C has an axe to grind with Apple?

Come on Apple, you can do better. I really want to like you more, but you don't make it easy.

Hacking FCSubscribe Support Around OSMF

Recently I had the task of recreating a video player for a customer for which no source code was available. The player needed to support on demand and live streaming, so I opted for an OSMF based player - why reinvent the wheel?

Things went well until the time came to add the live streaming support. The chosen CDN uses the FCSubscribe method for live streaming. In case you don't know, FCSubscribe is a serverside method which the player needs to call in order to instruct the CDN to deliver the requested stream to the edge server that you are connected to in order to play the stream.
Some CDNs (including Akamai and Limelight) provide custom OSMF plugins for this task, and if your CDN does the same then you have nothing else to do apart from using their plugin and you are set. However some CDNs do not (yet) provide such plugins, and since the task of creating one is no mean feat (and it was certainly not part of the budget for the player I was working on), another solution had to be found.

[Read Full Article]

FMS Bandwidth Tester App Works Again

I've just fixed the (now ancient) FMS bandwidth tester. It's based on some pretty old code by Adobe engineer Pritham Shetty and wasn't working since I rebranded the blog - well now it's functional again and I plan to connect it to a new server soon.

The neat thing about this FMS app is that it checks bandwidth both to and from the server - this is very useful if you build RTC based apps that utilise things such as webcam video or live audio.
If right now the speed results seem low then that's probably due to the very old machine I'm using to host the app... Believe it or not, the server is still the same one from back in 2005!

FMS bandwidth tester

Fundamentals for Great jQuery Development

I've recently stumbled across the following video by Damian Edwards of Microsoft. He gives a good intro to the intricacies of JavaScript, covering things like scope and closures before giving a great overview of JQuery. Definitely worth a watch.

If you are looking for a slightly more in-depth intro to jQuery then you could do a lot worse than sitting through Ray Camden's 'Introduction to jQuery' Udemy course which is a steal at only $20.

PayPal's Dubious Business Practices

Over the years I've had many encounters with PayPal. I use their service to process payments from my products and services, especially for international customers. PayPal is well known for its dubious business practices, seemingly freezing accounts at random without notice, leaving small businesses stranded and their money held hostage.

This morning the company may have overstepped the line when they froze the account of Regretsy, a site which was running a massive Christmas gift exchange program for children in their community.
What did PayPal do? They decided to shut their entire operation down and insisted that buyers are refunded, stating that it was ok to raise money for cats but not for children. It beggars belief.

Please check out the conversation the Regretsy site owner Helen Killer had with a PayPal employee. Then ask yourself: is PayPal a company you want to do business with in the future? I know I will reconsider, and have already started to offer Google Checkout and Amazon Payments to my customers.

In the meantime PayPal seemed to have been busy deleting comments on its Facebook wall - with limited results. Check out the comments on the latest posts made by Paypal: hundreds of angry customers venting their views.

PayPal: shame on you!

Forum Posts Resurrected

Due to several enquiries I've had over the last few weeks I have decided to put the old FlashComGuru forum back online for reference pirposes. It can be found at forum.therealtimeweb.com (or http://www.therealtimeweb.com/forum) and has been put there for reference purposes only. I have no plans to enable new signups again but would encourage people to sign up to this site's mailing list instead.

HDS Best Practices for FMS 4.5

Want to know more about HDS (HTTP Dynamic Streaming) support in Flash Media Server 4.5? Look no further as this upcoming online event on December 13th will cater for you.

HDS Best Practices for FMS 4.5 with Sarge

Date and Time: December 13, 2011 10:00 AM - 11:00 AM (GMT-7 Mountain Time US & Canada)

Address: http://realeyes.adobeconnect.com/fmsug

Call-in Details: VOIP Provided through Adobe Connect
http://realeyes.adobeconnect.com/fmsug

Speakers:

Sarge is an Application Engineer on Adobe's Video Solutions team. Formerly a FMS Technical Account Manager working with the top tier CDNs, Sarge has years of experience developing, deploying, and supporting Flash video solutions on FMS.

Agenda:

Adobe introduced HTTP Dynamic Streaming (HDS) a few years ago as a way to deliver immersive on-demand and live video experiences over standard HTTP connections. This technology has been deployed at CDNs such as Akamai, Limelight, and Level 3, and used by broadcasters like BBC (Wimbledon 2011) and AEG Digital Media (2010 MTV Teen Choice Awards). Adobe updated HDS in Flash Media Server 4.5 adding new features and enhanced security. Come learn the recommended best practices for deploying HDS with FMS 4.5 from Sarge, Application Engineer for Adobe Video Solutions.

Encode high quality video mezzanine MP4 files and deliver them in real-time simultaneously through RTMP and HDS. Configure HDS settings to optimize HTTP caching. Sarge walks you through the changes to HDS in FMS 4.5, including:

Just in Time packaging (JITP)
Set-level Manifests
Configuration updates

Attend the event at http://realeyes.adobeconnect.com/fmsug on December 13th.

More Entries