5 Reasons NetStream Sucks

Ok, I’ve been spending some serious time with NetStream and I have to say it sucks. Here’s 5 reasons why–feel free to add more.

  1. Seeking only to keyframes–this totally blows and seems completely inconsistent with other video formats. I want to choose a time to seek to and be guaranteed I’ll end up at that spot.
  2. Seeking is super slow until all keyframes are cached. No bull, if you have a file which you’ve completely preloaded, the keyframes aren’t cached until the video playhead reaches that point in time for the first time. If I load a file and seek to the end, the player has to chug through all of the keyframes prior to my seek point. This is slow, slow if I have video of even several minutes.
  3. NetStream.time doesn’t update immediately when seeked. The problem here is that since you can only seek to keyframes, you have no idea where you’ll actually end up. If you want to know what time you actually seeked to you have to loop on an interval–this is the same type of asynchronous crap that makes Flash notoriously trecherous (maybe I’m overstating it, but hopefully I’m making the point). I was optomistic that the NetStream.Seek.Notify ( introduced with Flash 8 ) would provide some help, but again it appears to only tell you when a seek is complete–NetStream.time still hasn’t been updated at this point
  4. The NetStream.pause() toggle is, again, slower than crap. If I’m in a “pause” state and I toggle back to “play” the flv delays a little before beginning playback and this delay seems to correspond to the renderer crapping its pants. The problem here is that if I’m trying to sync an flv to a swf the two can become significantly out of sync just by toggling back and forth between play and pause.
  5. There’s no way to query the flv to find out if its playing our paused. Sure, you can listen for the start of file and end of file events of onStatus, but NetStream doesn’t care to give you anything in between. Yes, I can track my toggle states, but that’s ugly and gets more problematic if I’m trying to synchronize two files of disparate lengths (one gets an end of file before the other and this play state isn’t triggered by a toggle action).

Ok, now that I’ve got that off of my chest, I’d like to say I’m a huge fan of Flash video–I just want it to be better. Hopefully, someone out there is listening and these issues will be addressed in upcoming releases of the player.

Section 102 | Row 55 | Seat 7

I had one of those “landmark” life moments on Sunday evening when I had the opportunity to attend my first Green Bay Packers game on the hallowed “frozen tundra” of Lambeau Field. Raised in Wisconsin, I grew up steeped in the lore of Titletown, so named for the 12 NFL World Championships the Packers have won over the years, and spent many a Sunday throwing down beer and brats while watching the Packers. Lambeau Field has been sold out since 1960 and there’s currently a 30 year waiting list for season tickets, so it was a dream come true, when my older brother, Ford, called me up out of the blue with the news of tickets to Sunday’s game against the Detroit Lions.

I took some short video clips on my Palm Treo 650–actually amazing video for a for a phone. I’m using the kimili WordPress plugin to embed the Flash video’s into my blog post, but for some reason, the component controls don’t show up ( they show up fine when tested in the standalone player, or in their own html wrappers)…if anyone can point me in the right direction, I’d be happy to remedy the situation. I ended up using Camtasia Studio Playback controls so that there was some mechanism for controlling the video. However, this too required a bit of jiggering, as I had to provide absolute paths for the xml configuration file and the location of the swf shell and flv files.

The legendary Brett Favre marches the pack toward the endzone:

Brooks:

Ford:

Compiling ASDT from CVS

I was bored and wanted to check out the latest ASDT features / fixes, so I downloaded the ASDT source files from CVS and figured out how to compile them for use in Eclipse. I put together a Camtasia Studio video tutorial of the whole procedure which can be cound via the link below. It’s actually quite an easy process, though I did get bogged down for a few minutes trying to download all of the views into a single project before realizing the error of my way. Enjoy!

Compile ASDT video tutorial.