31 December, 2007
A couple projects for the next year
2007 is ending, and as usual I'm preparing new projects for the next year. A couple of them involve the blogging. First of all, in 2008 I will launch a new Blog in Italian language. This blog will be less technical and more devoted to inform and support Italian executives' decisions involving the use of Adobe Flash Video Ecosystem. The second project is a new showcase of the real potentiality of H.264 technology. In the last two months I played with my new Core 2 Quad @ 3GHz processor testing new H.264 encoders. Believe me, H.264 potentialities are really astounishing and for the most part underused today.
What do you think about encoding HD content (1280x720p@25) in 1000-1200Kbit/s ?
Last but not least, I'll publish a AAC analysis as the conclusive step of our 'excursus' in the H.264 + AAC technology before releasing the "Flash Video Technology - White Paper - 2008". Best Wishes.
Fabio Sonnati ::
27 December, 2007
Two words about video.smoothing
Every day on the web new video related sites appear. Video sharing, video delivery sites or simply mashups, all Flash Video based. I'm very happy about this but there is a thing I can't understand and it is : why very often is video.smoothing property not used ? This is completely obscure to me because in my opinion a smoothed video is always better than a blocky one.
Fabio Sonnati ::
13 December, 2007
My preferite bandwidth monitoring and shaping tool
When you work with FMS, FME or more generally Flash Video Technology both in delivery and realtime applications development, it is hard to find out what is going on (and often 'wrong') with your configuration. Frame rate drops or latency may depend by a lot of causes. Further more, it would be very useful to simulate some real world conditions, like bandwidth drops, directly in your development environment.
To do that, I'm using with real satisfaction a personal firewall/network monitor/bandwidth shaping tool called Netpeeker.


Thanks to this inexpensive yet powerfull tool, I'm able to check the effective bandwidth usage of my FMS + FME applications. But the most important feature is the bandwidth throttling capability which is invaluable to simulate a generic user experience.
If you are a FMS developer it definitely worths a look.
Fabio Sonnati ::
6 December, 2007
Adobe HD Video showcase
Today Adobe has published its official HD Videos showcase site:
http://www.adobe.com/products/hdvideo/
The site shows various examples of HD footage encoded at 480p,720p and 1080p.
Videos are encoded in Vp6 and H.264. You need the latest Flash Player (9.0.115.)
to view the samples.
Fabio Sonnati ::
4 December, 2007
Flash Player 9 Update 3 released, FMS3 announced .
Today Adobe has released the final build of Flash Player 9 update 3 (9.0.115.0).
With this official release, in a very short time, millions of Internet's surfer will be able to benefit H.264 videos and AAC audio. At the same time Adobe has announced the imminent release
of Flash Media Server 3. FMS3 supports H.264 streaming, encryption, performance enhancements and a new license pricing model.
Follows a set of articles about this event:
http://www.flashmagazine.com/1472.htm
http://www.beedigital.net/blog/?p=1658
http://www.adobe.com/devnet/logged_in/jchurch_flashplayer9.html
http://www.kaourantin.net/
http://www.adobe.com/products/flashmediainteractive/
Fabio Sonnati ::
3 December, 2007
How H.264 works - Part III: VP6 vs H.264.
The time has come for the third and last part of our H.264 analisys. You can find the first and the second part here and here. In this concluding part we compare H264, the new "kid on the block", with Vp6, the Flash Video "Veteran".
VP6 video codec
For the Flash Player 8, Macromedia needed a state-of-the-art video codec to sustein the adoption of the Flash Player as the ideal video delivery platform. The choice fallen on On2’s VP6. You may ask why did Macromedia chosen in 2005 a proprietary technology instead of H.264 whose specification was already released. The reason was the excessive complexity of H.264 and the licending.
As a result of licending schema, the costs of deploying professional H.264 videos can be very high. Under the MPEG LA terms, in larger deployments encoder and decoder fees are $0.20 per unit up to five million units (beyond the price is $0.10). There are also content-based fees. The cap for these fees was $3.5 million (per firm) in 2005 and 2006, $4.25 million in 2007 and 2008 and $5 million in 2009 and 2010.
Under the terms of the VIA License, in larger deployments, encoder and decoder fees are $0.25 per unit, as well as content fees. As an annual cap on content fees, non-PC OEMs pay $2.5 million a year and PC OEMs pay $4 million.
These royalty are only for the intellectual property licenses and not for a working codec, thus to this cost we must add the cost of developing an efficient H.264 compliant codec and this was not an easy task.
The choice of VP6, which is royalty-free, permitted Macromedia to avoid the payment of several million dollars in fees. But this early advantage has initially hidden the Vp6 main disadvantage. On2 holds firmly the rights for the production and use of Vp6 encoders.The lack of free Vp6 encoder has slowed down a wider adoption of this technology.
On2 is a firm specialized in high-quality video codec. In the last 15 years, On2 released a set of very good codecs: VP3 (later released as open source and become the base for Theora project), VP4, VP5, VP6 and VP7. Macromedia licensed both VP6 and VP7 but, by now, has included only a VP6 decoder in Flash Player 8+ and an encoder in the Flash Player 8 Professional Video Exporter. After the deal Adobe-Macromedia, It’s not clear what use Adobe will do of the VP7 license.
On2 declares VP6 to be a H.264-class codec and even to surpass it in Power Signal / Noise Ratio (PSNR) in many scenarios. Beeing a proprietary technology, we don’t have detailed informations about compression techniques used. All informations below derive from unofficial web materials, VP3 format documentation, On2’s white papers and interviews.
Technical details
VP6 makes use of Intra compressed frames (I-frames) and unidirectionally predicted frames (P-frames) only . There are no B-type frames, but P frames can have multiple reference frames in the past.
VP6 uses a somewhat traditional 8x8 iDCT-class transform for spatial to frequency domain transformation (VP7 uses a 4x4 trasform, similar to H.264) . Intra-compression makes use of spatial prediction modes, although not as much advanced as those found in VP7 or in H.264 (probably similar to what is used in H.263++).
Macroblocks are arrays of 16x16 pixels and motion prediction is done with one vector per macroblock or 4 vectors (one for each 8x8 block). There are a number of motion vector prediction modes and for each macroblock is possible to choose between two reference frames: the previous frame, and a previously bookmarked frame.
In older VPx codecs, this second reference frame was, necessarily, the previous I-frame (keyframe). The bookmarked reference frame approach is more accurate and is very usefull to reduce bitrate in fast-changing scenes. Using more than 2-3 reference frames produces indeed modest improvements in compression ratio.
VP6 uses an “adaptive sub-pixel motion estimation”. The filters used for motion estimation are sensitive to content which allows the motion estimation to better preserve detail.
Quarter pel motion compensation is supported as well as unrestricted motion compensation. The range of motion compensation has been increased from previous codecs (extended long range).
VP6 takes advantages also of a better prediction of low-order frequency coefficients and an improved quantization strategy that preserves more details in the output.
For entropy coding, VP6 uses various techniques based on complexity and/or overall frame size, including VLC and context modeled binary coding.
To achieve any requested data rate, the codec chooses automatically to adjust quantization levels, adjust encoded frame dimensions, or drop frames altogether. Much of the efficiency of the codec is dued to an efficient in-loop deblocking filter (like in H.264).
The relatively high bandwidth available today to Internet users and the improvement in processing power (with multi-core cpu) are strongly pushing HD contents on the web. Starting from FP9 update 2, Flash Player is able to leverage modern multi-core cpu capabilities and video acceleration via Hardware. Today the Flash Player is finally able to decode hi-definition videos on a personal computer at full screen. Since Full High definition (1920x1080) decoding is still a complex task and a lot of processor out there have only one core, Adobe and On2 have defined a new fast “simple profile” for VP6, calles VP6-S. This profile, aimed at facilitating the decoding of HD footages for older systems, disables some cpu-hungry techniques like deblocking filter and arithmeric coding, and reduces the complexity of sub-pixel filtering. At high-bitrate (1.5-2Mbit/s or more) there are only a small loss in efficiency but a 30/40% less processing power needed.
VP6 vs H.264 and Conclusions
For what we have said, it is clear that VP6 is much simplier than H.264. And this is its main advantage. VP6 requires less complexity both in decoding and encoding stage.
how can VP6 obtain encoding performance comparable to H.264 ?
We must consider that VP6 uses fewer but efficient encoding techniques. A mix of adaptive sub-pixel motion estimation, better prediction of low-order frequency coefficients, improved quantization strategy, de-blocking and de-ringing filters or enhanced context based entropy coding, produces compressed movies with a very good “perceptual” quality.
Furthermore, we have already described the difference between a codec technology and a codec implementation. H.264 has a lot of modes, options and annexs, and to built an efficient encoder is quite difficult.
Fortunately the implementation of the H.264 decoder in the Flash Player is quite complete and supports Base, Main, High and High 10 profiles completely. The decoder exploits multi-core cpus and hardware video layer acceleration for full-screen playback. MainConcept (A firm specialized in video codec) has written the decoder in only 100Kbytes (compressed).
The encoders on the market are every day more efficient but only recently has been possible to see the real potentiality of H.264.
Concluding, I think Vp6 has been a very good codec and even today it offers an interesting power/performance ratio.
H.264 requires more power, requires licensing but produce better results expecially at lower bitrate.
I'll post soon a couple of examples of state-of-the-art H.264 encoding where you will be able to
judge what is possible with the latest encoders.
Fabio Sonnati ::
20 November, 2007
NellyMoser's ASAO is not a problem anymore.
For a Flash Media Server developer, ASAO has been really a nightmare. Not for its performance but because it has been for long a closed technology. A lot of business opportunities faded away because the FLVs recorded by the Flash Player use NellyMoser's ASAO Codec for the audio and therefore was not possible to transcode them to other formats.
But now the wait is over.
The new official release of FFMPEG supports the decoding of ASAO encoded FLV. The FLV files are now completely transcodable to anything you like and new FMS based Podcast applications are finally possible.
Fabio Sonnati ::
11 November, 2007
Screencast with Flash Media Encoder 2.
In my last post I described a test application making use of FME2 controlled by a Flash + Zinc Projector. The new idea is to use this configuration to grab the screen and make an effective screen cast. The new FME2 support a wider range of resolution. My VHScrCap screen capture driver is finally seen with a decent resolution of 1024x768 pixels and therefore is possible to stream an high detailed screencast. The former FME was only able to grab screen at an almost useless 720x576.
I'm working on this small application right now, I'll post it asap...
Fabio Sonnati ::
7 November, 2007
Testing Flash Media Encoder 2...
In the last week I tested FME2. I already know the great video quality of FME1, but the lack of MP3 encoding and of a command line option reduced its usefullness. Finally FME2 introduces these lacking features and enhances greatly its reliability.
It behaves very well in "live" streaming, but I have tryed to go beyond...
I really feel the need for an enhanced real-time encoding alternative to the old spark encoding available in Flash Player. Can FME2 replace the Flash Player for real-time encoding ?. For real-time I mean with a latency as low as possible. This is quite different from "live", where the latency is not an issue because there is no interaction beetween the users of the video communication.
Unfortunately FME2 produces very good quality results but introduces a wide latency both with MP3 (obvious)
and Nelly Moser audio encoding (much less obvious). The only way to reduce latency is to stream only the video.
I have created a little test application with Flash + Zinc which launchs FME2 to grab and stream video in Vp6 and grabs audio directly through the Flash Player. The two separate stream remained syncronous for a surprisingly long time and the overall latency was really low!
The problem arise when bandwidth goes down. Vp6 has no possibility of bandwidth modulation, no D or B frames to discard, and FME2 behaves very bad when the available bandwidth to the server goes below the value setted for the encoding.
I have to (re)use the good-old spark yet for a while, and It's a pity.
Fabio Sonnati ::
30 October, 2007
Flash Media Encoder 2 is out!
Don't miss this. Adobe has released FME2 and all the experienced problems seem to be resolved.
http://www.adobe.com/products/flashmediaserver/flashmediaencoder/
"With an intuitive user interface that works seamlessly with plug-and-play cameras and microphones, and compatible analog-to-digital converters, Flash Media Encoder 2 features Flash video (VP6) technology to deliver high-quality footage that provides size and bit rate flexibility. You also get full audio control with bit-rate efficient Nelly-Moser or MP3 encoding.
Flash Media Encoder 2 can also be tightly integrated into your streaming pipeline with command-line control both locally and through a remote connection. Auto-restart after power failures or other system re-starts helps ensure that your live streams are reliably available 24x7, 365 days a year."
wow! I'm just starting to test the software, expecially the long awaited command line option. The only lacking feature seems to be the support for H.264. It willl be added when FMS3 will be released in Q1'08. I'll report you soon about my impressions.
29 October, 2007
How H.264 works - Part II.
Let's continue the analysis of H.264 main compression specifications and techniques:
Motion Compensation
H.264 uses P frames (predicted) and B frames (interpolated) with full pixel, half-pixel and quarte pixel resolution. Prediction at half-pixel uses a 6-tap filter for pel interpolation, quartel-pixel precision use bilinear interpolation of half-pixels.
Motion compensation is done using seven macroblock configurations with block size as large as 16x16 and as small as 4x4. Each macroblock can have a different reference picture. The picture below lists the possible motion extimation vector’s configurations.

B frames are predicted from previous and/or future pictures with 5 prediction Modes (intra, forward, backward, interpolated and direct) designed to suit different scenarios.
Weighted prediction allows an encoder to specify the use of a scaling and offset when performing motion compensation providing a significant benefit in performance in special cases, such as fade-to-black, fade-in, and cross-fade transitions.
It is also possible to use B-Frames as reference for other B-Frames (B-pyramid).
In-Loop Deblocking Filter
Loop filtering is mandatory in the encoder, it identify a blocking situation depending by two threshold factors (alpha and beta). A lot of efficiency is due to the loop filter. The strength of filter depends on intra/inter coding, differential vectors, quantization level. Up to 40% of total processing power may be required by this kind of filter. Filtering the reference frames prior to use them in prediction can significantly improve the objective and perceptual quality expecially at low or medium bitrates.
Entropy Coding
For entropy coding, H.264 may use an enhanced VLC, a more complex context-adaptive variable-length coding (CAVLC) or an ever more complex Context-adaptive binary-arithmetic coding (CABAC) which are complex techniques to losslessly compress syntax elements in the video stream knowing the probabilities of syntax elements in a given context. The use of CABAC can improve the compression of around 5-7%. CABAC may requires a 30-40% of total processing power to be accomplished.
These techniques, along with several others, help H.264 to perform significantly better than any prior standard, under a wide variety of circumstances in a wide variety of application environments. H.264 can often perform radically better than MPEG-2 video—typically obtaining the same quality at half of the bit rate or less. It performes also better than MPEG4-class video codecs like DIVX. Today, H.264 belongs to the State of the Art in video encoding and has obtained a wide adoption in various industry applications ranging from mobile video (3gpp) to High Definition contents production (AVC-HD cams) and delivery (HD-DVD, BlueRay disks and Satellate HD broadcasts).
Other features
H.264 is a very complex standard and there are other interesting features like lossless encoding, interlaced frame optimized strategies (MBAFF – PAFF), data partitioning, slices and frame reordering, error resilience strategies.
Codec Profiles
A number of profiles exists witch define exactly what available techniques and strategy are used. Simplier profiles requires less processing power and less memory but achieve a worst quality/bitrate ratio.
- Baseline Profile (BP): Primarily for lower-cost applications with limited computing resources, this profile is used widely in videoconferencing and mobile applications.
- Main Profile (MP): Originally intended as the mainstream consumer profile for broadcast and storage applications, the importance of this profile faded when the High profile was developed for those applications.
- Extended Profile (XP): Intended as the streaming video profile, this profile has relatively high compression capability and some extra tricks for robustness to data losses and server stream switching.
- High Profile (HiP): The primary profile for broadcast and disc storage applications, particularly for high-definition television applications (this is the profile adopted into HD DVD and Blu-ray Disc).
High 10 Profile (Hi10P): Going beyond today's mainstream consumer product capabilities, this profile builds on top of the High Profile—adding support for up to 10 bits per sample of decoded picture precision.
|
Baseline |
Extended |
Main |
High |
High 10 |
I and P Slices |
Yes |
Yes |
Yes |
Yes |
Yes |
B Slices |
No |
Yes |
Yes |
Yes |
Yes |
SI and SP Slices |
No |
Yes |
No |
No |
No |
Multiple Reference Frames |
Yes |
Yes |
Yes |
Yes |
Yes |
In-Loop Deblocking Filter |
Yes |
Yes |
Yes |
Yes |
Yes |
CAVLC Entropy Coding |
Yes |
Yes |
Yes |
Yes |
Yes |
CABAC Entropy Coding |
No |
No |
Yes |
Yes |
Yes |
Flexible Macroblock Ordering (FMO) |
Yes |
Yes |
No |
No |
No |
Arbitrary Slice Ordering (ASO) |
Yes |
Yes |
No |
No |
No |
Redundant Slices (RS) |
Yes |
Yes |
No |
No |
No |
Data Partitioning |
No |
Yes |
No |
No |
No |
Interlaced Coding (PicAFF, MBAFF) |
No |
Yes |
Yes |
Yes |
Yes |
4:2:0 Chroma Format |
Yes |
Yes |
Yes |
Yes |
Yes |
Monochrome Video Format (4:0:0) |
No |
No |
No |
Yes |
Yes |
4:2:2 Chroma Format |
No |
No |
No |
No |
No |
4:4:4 Chroma Format |
No |
No |
No |
No |
No |
8 Bit Sample Depth |
Yes |
Yes |
Yes |
Yes |
Yes |
9 and 10 Bit Sample Depth |
No |
No |
No |
No |
Yes |
11 to 14 Bit Sample Depth |
No |
No |
No |
No |
No |
8x8 vs. 4x4 Transform Adaptivity |
No |
No |
No |
Yes |
Yes |
Quantization Scaling Matrices |
No |
No |
No |
Yes |
Yes |
Separate Cb and Cr QP control |
No |
No |
No |
Yes |
Yes |
Separate Color Plane Coding |
No |
No |
No |
No |
No |
Predictive Lossless Coding |
No |
No |
No |
No |
No |
|
Baseline |
Extended |
Main |
High |
High 10 |
TO BE CONTINUED...
Fabio Sonnati ::
25 October, 2007
How H.264 works - Part I.
As promised, after a couple of introductionary posts, let's take a look at how H.264 works.

H.264, MPEG-4 Part 10 (or AVC) was written by the ITU-T together with the ISO/IEC Movie Picture Experts Group (MPEG) as the product of a collective partnership effort known as the Joint Video Team (JVT). The ITU-T H.264 standard and the ISO/IEC MPEG-4 Part 10 standard (formally, ISO/IEC 14496-10) are technically identical. The final drafting work on the first version of the standard was completed in May of 2003.
H.264 contains a number of new features that allow it to compress video much more effectively than older H.26x standards. It is the actual state-of-the-art encoder.
New trasform design
Differently from older codec, an exact-match integer 4×4 spatial block transform is used instead of the well known 8x8 DCT. It is conceptually similar to DCT but with less ringing artifacts. To transform a block from spatial to frequency domain allows the encoder to apply psico-visual models to reduce details which are less importan from a perceptual point of view.
There is also a 8x8 spatial block transform for less detailed areas and chroma.
A secondary Hadamard Transform (2x2 on chroma and 4x4 on luma) can be usually performed on "DC" coefficients to obtain even more compression in smooth regions.
There is also an optimized quantization and two possible zig-zag pattern for Run Length Encoding of transformed coefficients.
Intra-frame compression
H.264 introduces complex spatial prediction for intra-frame compression.
Rather than the "DC"-only prediction found in MPEG2 and the transform coefficient prediction found in H.263+, H.264 defines 6 prediction directions (modes) to predict spatial information from neighbouring blocks when encoded using 4x4 transform. The encoder try to predict the block interpolating the color value of adiacent blocks. Only the delta signal is therefore encoded.
There are also 4 prediction modes for smooth color zones (16x16 blocks). Residual data are coded with 4x4 trasforms and a further 4x4 Hadamard trasform is used for DC coefficients.
Improved quantization
A new logarithmic quantization step is used (compound rate 12%). It’s also possible to use Frequency-customized quantization scaling matrices selected by the encoder for perceptual-based quantization optimization.
Multiple Reference Frames
H.264 uses previously-encoded pictures as references in a much more flexible way than in past standards, allowing up to 16 reference pictures to be used (unlike in prior standards, where the limit was typically one or, in the case of conventional B frame, two). In certain scenarios, for example scenes with rapid repetitive flashing or back-and-forth scene cuts or uncovered background areas, it allows a very significant reduction in bit rate.
TO BE CONTINUED...
Fabio Sonnati ::
20 October, 2007
Finally I found the perfect webcam for FMS
In the last five years, I have tested quite a lot of webcams, dvcams, frame grabbers, scan converters and other video sources for my Flash Media Server applications and consultancies. Finally I have found a (apparently) perfect webcam to use with Flash and FMS.
Ladies and Gentlemes let me introduce the Logitech QuickCam Pro 9000:
Despite the sober look, QuickCam Pro 9000 is the most advanced webcam on the market today. Let's take a look at the Specifications:
- 2 Million pixels CMOS sensor
- Up to 30 Fps on USB2.0
- RightLight2 technology for optimal exposition
- Multiple glass lenses by Carl Zeiss
- Auto-focus
- resolution up to 1600x1200 (!)
It is not the first time I read
excellent features on a product and then repent to have buy it. So I have been sceptic until I have tested it. It is really wonderfull.
Images are absolutely sharp thanks to Carl Zeiss glass optic with automatic focus (I suppose they use a pizoelectric device to move lens internally to properly focus image on the sensor). Resolution range is very good: 320x240, 640x480, 800x600, 960x720 and 1600x1200. The CMOS sensor is a real 2 Mega pixel device and have very low noise level expecially compared to other webcam.
And finally...all resolution are properly identified and exploited by Flash Player!
Let's take a look at the quality by yourself:

I'm really thinking to make some experiment in VideoBlogging using this excellent webcam. I'm also curious to know if the driver is good enough to identify multiple camera attached...
Fabio Sonnati ::
12 October, 2007
Again on VP6-S Profile
In the last post, I wondered about the technical differences between VP6-E and the new VP6-S(imple) profiles...
John Luther,
Vice President of Product Management in
On2 Technologies, mailed me more details about that. I quote the mail:
"One of the key differences between the two is that at high data rates
VP6-S uses a VLC method instead of an arithmetic entropy decoder. The
effect of VLC vs. arithmetic on quality decreases at high rates but
grows in terms of the impact on speed. In fact, VP-S still uses
arithmetic at lower rates but switches to VLC when the frame size
reaches a critical level.
VLC hurts quality somewhat at low rates but makes only a small
difference to quality at high rates (i.e., at high rates the
quality/bitrate gap converges).
VP6-S still supports 1/4 pel but uses a simplified interpolation
mechanism at higher bit rates, and on larger image sizes the possible
quality implications are diminished
...VP6-S disables the in-loop deblocking filter too
".
Very clear and interesting, thank you John.
Fabio Sonnati ::
8 October, 2007
What is the VP6-S Profile ?
Flash Player 9 update 3 (codename "moviestar") has introduced a lot of new features. The most importants are: the support for H.264 and AAC and a set of optimizations in video decoding performance both for H.264 and Vp6 coded videos.
These optimizations leverage hardware full-screen capabilities and the processing power of multi-core processors. Therefore, the full-screen decoding of HD or Full HD videos becomes possible with the latest hardware technology.
But what about older systems? Since there are a lot of older mono-core processors out there, Adobe has introduced in "MovieStar" a new profile for Vp6 encoded video too.
VP6-Simple Profile
From the press release of On2:
"The new VP6-S video profile offers greater simplicity in the encoding and playback of high-resolution, full-screen video, thereby allowing high definition video to be streamed and played back within processor power limitations posed by the majority of personal computers. On2 will ship its flagship Flix Engine upgrade for VP6-S mid-October, concurrently with the Adobe Flash Player 9 update. The remaining Flix product line with VP6-S upgrades will ship during the fourth quarter of 2007. "
On2 has not explained the technical differences between VP6-E and VP6-S profiles. We can suppose that a way to speed up the decoding of video could be to disable 1/4 pel motion estimation and/or to simplify the in-loop deblocking filter. In high-resolution, hi-bitrate environments, these two techniques are less effective. Remenber that every codecs tend to converge as Quality/Performance ratio at high or very high bitrate. A wider audience reach can be a valuable advantage for Vp6 over the more complex and slower H.264.
Fabio Sonnati ::
1 October, 2007
Adobe introduces Flash Lite 3.

Today at Max Adobe has introduced Flash Lite 3.
The big new key feature is the support for progressive downloaded or RTMP streamed FLV video files. Finally, we would be able to stream real-time or on-demand videos from our FMS to a range of mobile phones.
The supported codecs are Sorenson Spark and On2's Vp6.Support for H.264 is under evaluation.
A developer edition will be released in November. The dev edition is optimized for Symbian OS v3 and certified under Nokia N95.
With a FL3 enabled phone browser, will be possible to view the majority of Flash 8 contents. However, FL3 does not support the following FP8 features:
* Filters (blur, drop shadow, etc.)
* Blend modes (add, subtract, multiply, etc.)
* Enhanced strokes (miter, square, etc.)
* CSS support
* <img> tag
* Text as Link
* setTimeout
* WMode
* _target
* Encoding per pixel alpha with Flash 8 video (On2 VP6)
* Bitmap caching
* LocalConnection object (to be added in a Flash Lite 3.x update)
* movieClip.AttachBitmap()
* Flash.Geom object
* Flash Remoting
The only disappointing new I found is the lack of support for Remote Shared Object.
This is very bad. RTMP is supported for streaming but not for SO. It can be, partially, replaced by XML web services supports.
Fabio Sonnati ::
24 September, 2007
Facts on H.264 - Part II : FLV file format is phasing out.
The support of the codec H.264 brings also a new media file container.
It seems that the old FLV is not so good to "contain" the new bit-streams.
Tinic Uro, Flash Player engineer, said:
"...Will it be possible to place H.264 streams into the traditional FLV file structure? It will, but we strongly encourage everyone to embrace the new standard file format. There are functional limits with the FLV structure when streaming H.264 which we could not overcome without a redesign of the file format. This is one reason we are moving away from the traditional FLV file structure. Specifically dealing with sequence headers and enders is tricky with FLV streams..."
The new container supports a subset of ISO 14496-12 specification and is therefore "compatible" with Mpeg4, 3GPP and QuickTime file format.
What does it means for a developer ?
If you are a low-level video specialist like me, this means you need to gain expertise and knowledge about the new file format otherwise you will not able to manipulate the video files anymore. If you are more interested in high-level topics, you don't have to worry about boring bit-sequences, tags, atoms & flags because the new container is functionally very similar to FLV.
If you belong to the first category or if you are curious enough, I suggest to read this very big quick-time file format documentation to familiarize with new concepts like 'Atoms' or the like:
http://developer.apple.com/documentation/QuickTime/QTFF/qtff.pdf
Fabio Sonnati ::
17 September, 2007
A new "Astro" is rising in the sky.
In the early September Ted Patrick has revealed that:
"At Adobe MAX 2007 in Chicago we are going showing off the next full release of Flash Player code named "Astro". The features are mind blowing and add capabilities far beyond anything the market today. The future of Adobe Flash Player looks very bright indeed."
I'm very curious and a bit anxious about the next Flash Player release. I think the 10th release of the Flash Player will be very important for the Adobe eco-system. Don't forget that now there is another competitor on the market, expecially in the video arena and I'm talking obviously about Silverlight.
Flash Player 10 has the task to consolidate the current technologies but also to introduce new exciting and compelling features. My mind goes directly to the delivery and/or streaming of video contents.
Silverlight is very immature compared to Flash, but very promising too.
Silverlight is just capable to serve videos with an high end codec (VC1, a semi opened standard, similar to H.264 and used as option in HD-DVD and BlueRay), using both progressive downloading and streaming.
For streaming, Silverlight leverages the rock-solid capabilities of windows media streaming technology, a streamer server included in Windows Server 2003 with no limit of bandwidth and users. I have just understood that I'm making a comparison with the Flash Media Server. If Adobe doesn't improve the performance of FME and give it a more competitive license, Flash will hardly compete, in a 2 years perspective, with Silverlight in the streaming market.
Fortunately, FMS3 has been announced, FL3 has been announced, AIR is coming out and Adobe Media Server too. And, last but not least, also the next Flash Player release codename "Astro" is rising.
I'm confident and I'm confidently waiting for Adobe MAX 2007's news...
Fabio Sonnati ::
12 September, 2007
Facts on H.264 - part I.
I want to start a set of articles around H.264 encoding standard and related topics.
In this first part let me introduce the standard and make a quick consideration about one of the more vexed question: the H.264 licensing fees.
What is H.264?
H.264 is a standard for video compression. Also known as MPEG4 Part 10 or AVC (Advanced Video Codec), it is the *state of the art* video encoder. It is quite complex and very flexible, the goal is to cover any needs from low bit-rate mobile video streaming to high bit-rate, hi-definition broadcasts.
H.264 is already used on the web (quick time), is used on camcorder for High Definition recording, is used on HD-DVD and BlueRay to encode high definition bitstream at the same bitrate of the "old" MPEG2 DVD.
Differently from On2 Vp6 (and Vp7), H.264 is an open standard. This mean you can download the codec specification and build you own encoder and decoder. This also means you can already find a plurality of commercial and free codecs available on the net.
However, the use of H.254 standard is NOT COMPLETELY FREE. it is regulated by licensing rules.
These rules has been defined by MPEG LA which hold the patent-pool and involves codec manifacturers and content providers too.
Comparing to H.264, Vp6 require an encoder license but does not require *contents* licenses.
H.264 licensing fees
The fees schema is complex, I can suggest to read this if you want to know it in details. I briefly summarize the main points. Licensing fees must be paid by:
- encoders and decoders manufacturers:
under 100,000 unit / year -> no fees
beyond 100,000 unit / year -> 0.2$/unit
beyond 5Million / year
-> 0.1$/unit
there is also a fees cap per enterprise per year
- video contents or service providers:
in a pay-per-view scenario:
2% of the video licensing cost or 0.02$ per title encoded with H.264 with lenght higher than 12 minutes (below there's no fees to pay).
in a subscriber scenario:
below 100,000 subscriber per year -> no fees
from 100,000 to 250,000 -> 25,000 $ / Year
from 250,000 to 500,000 -> 50,000 $ / Year
from 500,000 to 1,000,000 -> 75,000 $ / Year
grater than 1,000,000 -> 100,000 $ / year
there is also a fees cap per enterprise per year and a similar licensing plan for television broadcasting.
What this means for developers ?
Obviously it depends by the size of your project. Notice that under 12 minutes there is no need to pay fees, so no problem for trailers, interviews, small news, and so I'll expect a massive adoption of H.264 by "YouTube like" companies in the next future.
What happen if you have to publish a longer video ?
If you charge your visitors to see the video and if you have a large audience you have to pay. If the video is self-produced or royalty-free, the MPEG LA licensing summary file seems to "suggest" the payment of at least 0.02$ per title. In any case, there is a partecipation to revenues, if they exist, also if they derive from advertising or other non-direct means.
H.264 licensing fees can be a problems and a cost only for big project. In this case a very small portion of the incomes must be paid to MPEG LA. This is the price to use the stable, mature, efficient, "ubiquitous" and flexible H.264 standard.
Fabio Sonnati ::
6 September, 2007
Adobe announces FMS3, FL3, FME2
This september is full of exciting news. After the outstanding announcement of the support of H.264 - AAC - MP4 standards, Adobe has announced the next releases of FMS3, FL3 and FME2, today during IBC at Amsterdam. Here the facts:
- Flash Media Server 3 will be up to 200% more scalable (someone talked about an asyncronous redesign of the core engine).
- FMS3
will support MP4 (H.264 + AAC) streaming.
- Encripted streaming support.
- Improved live video.
- Supports streaming to FL3.
- Server side re-publishing.
- FMS3 will continue to support AS1 only.
- Flash Lite 3 will support live and recorded streaming from FMS3 (the supported codec are not known for sure. Probably Vp6 only, less probably H.263 and Vp6)
- FME2 will be enhanced with H.264 + AAC encoding capabilities.
- No further informations about the existence of API to control FME programmatically.
- FMS3 will be sold in the first quarter 2008
- FL3 will be available to vendors in the late 2007
- FME2 will be available in the first quarter 2008
What I think about that? Obviously I'm excited about these improvements in the direction of built a more robust Adobe Flash video ecosystem. All these announcements (except perhaps the H.264 support) are more evolutions than revolutions. In my opinion there are again a number small,medium and big lacks in the ecosystem that must be filled. Meanwhile Microsoft Silvelight is born and it's mission is to depose the King.
I confide in Adobe, they have done an excellent work with Flash Player 9 expecially in the video "arena", where the challenge against Silverlight will be harder. Enforcing even more the video capabilities of the Ecosystem (FP + AIR + Flex + FMS + FL) is mandatory and I hope the next release of Flash Player (code name Astro) will be capable, finally, to fill these gaps. In the meanwhile enjoy the press release and an interesting FAQ:
http://www.adobe.com/aboutadobe/pressroom/pdfs/FMS3FAQ.pdf
http://www.adobe.com/aboutadobe/pressroom/pressreleases/200709/090607FMS.html
Fabio Sonnati ::
27 August, 2007
Flash support H.264 and AAC, am I dreaming?
I return from my vacations and what do I learn ?
Flash Player latest beta supports H.264 video codec, AAC audio codec and a subset of MPEG4 file format. am I dreaming? This is wonderful, this is a huge new.
You know I'm an audio-video encoding technology "fanatic", so no surprise for my enthusiasm, but I assure you, this is absolutely a great move from Adobe.
The best sources for informations are at this moment Stefan Richter's blog and Tinic Uro's blog. Waiting for my own demos, I'll suggest you to check Stefan's blog.
H.264 and AAC are the state-of-the-art codecs and are standard. Which means potential interoperability with a wide range of industry applications, from 3gp mobile videos to HD-DVD and BlueRay videos.
In the next posts I'll talk more in details about the features of this standards and the next few weeks I'll upgrade the technical white paper on Flash Video Technologies.
Stay tuned,
Fabio Sonnati ::
27 July, 2007
A snippet to inspect webcam modes supported by Flash
Some days ago I published on Flash Media Mailing List a little snippet to inspect what video modes of your webcams you are able to exploit under Flash. The principle is quite simple. The code try to set a specific resolution and then verifies if the mode has been accepted by Flash Player:
fps=15; //Try other values
cam = Camera.get();
for (w=100;w<1000;w=w+20){
for (h=100;h<1000;h=h+20){
cam.setMode(w,h,fps);
if ((w + "x" + h)==(cam.width + "x" + cam.height)){
trace(cam.width + "x" + cam.height + " @ " +
cam.fps);
}
}
Probably you will discovery some oddity in the way Flash Player recognize and validate webcam or framegrabber resolutions.
Fabio Sonnati ::
2 July, 2007
Full Screen video in Flash9 is really good
I'm testing extensively the new FP9 feature of hardware accelerated and multithreaded full screen video playback, and I have only a word in my mind: excellent.
You know that flash video "eco-system" is becoming every day more and more used for delivery video over the web. Vp6 is a really good codec (try a look at this if you are skeptic about that : HD sample 4 - 1280x720 (720p) - 1300Kbit/s ).
It only lacked an effective full screen mode.
Now Flash has a very effective Full Screen mode. In my tests, the Full Screen Playback of 720p footage on a 22'' monitor (1680x1050) has been performed around 30% faster by a dual core machine (Core 2 Duo).
In the next post, I'll explain what is hardware scaling and why it is so important.
Fabio Sonnati ::
13 June, 2007
Flash Player Update 3 Beta 1 heavely improves Flash Video
Adobe has released a new Flash Player 9 update (build 9.0.60.120) rich of performance and quality improvements expecially in video playback.
In my opinion the best improvements are:
- Multi-threaded video decoding. The VP6 video decoding will now be performed in a separate thread if a multi-core system is detected while the main thread does rendering and post processing of the video. 1080p video decoding is now possible on dual core machines.
- Full screen video decoding will leverage hardware scaling. Wonderful! why to scale a 640x480 video to 1280x1024 using the main processor when all the computer video cards today have video scaling technology?
I think this is really a must for the definitive consacration of Flash Video Technology. I'll post as soon as possible a test of this feature.
-
VBL in fullscreen. The player is now capable to syncronize the rendering in fullscreen to the "vertical blank" for a smooth playback of flash movies.
- Automatic Mipmap for scaled videos and picture. Optimal for video thumbs
- Faster Vp6 entropy decoding and improved deblocking filter.
I'm very excited of these improvements. I'll keep you updated with tests and samples.
Fabio Sonnati ::
6 June, 2007
The future of Flash Video will be mobile, too.
Flash Lite 3 is on the way to be released in the next months. The more exciting feature will be the support for the "traditional" Flash video codecs (Flash Lite 2 only supported the external launch of 3gpp and mp4 videos). The subscribing of video should be accomplished by both progressive downloading and FMS streaming.
I hope (but probably this will be implemented in a future release) to find also a support for video grabbing directly from the integrated camera of the phone. In any case, think of the possibility of mobile interaction, game and communication that a complete exploitation of FMS could generate...
In the meanwhile, here in Italy, Vodafone has make the first HSUPA "call". HSUPA means High Speed Uplink Packet Access and is an evolution of HSDPA and UMTS.
Today Super UMTS (HSDPA) works at 3.6Mbit/s in download and 384Kbit/s in upload.
Tomorrow, HSUPA will offer 7.2Mbit/s in download and *2Mbit/s* in upload!.
I hope to put my hands on that technology very soon...and to be able to experiment with a new, and powerfull Flash Video centered mobile ecosystem.
Fabio Sonnati ::
March 20, 2007
How to programmatically control Flash Media Encoder
I'm very satisfied with this great software. It garantees great performances, expecially at low and very low bitrate. The only defect I found is the lack of a command line mode.
If you have to set up and launch the encoding on a remote computer or if you need to integrate FME in a pre-existent authomatic procedure or system, You would need a command line mode or a programmatic way to handle starting, stopping, changing configurations.
Unfortunately FME does not give this possibility, but you can easy
obtain the same final result with an handy WSH script.
A WSH (Windows Scripting Host) is simply a .vbs text file that can be interpreted by windows as a Visual Basic Script (starting from Win2000). Cut and Past the code below in your notepad, insert the path to your FlashMediaEncoder exe and save all as TEST.vbs.
Now, double clicking on the file and you will see the FME starts, loads the configuration held in the custom.xml file (previously setted and saved) and finally starts the encoding.
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "[write here the path to FlashMediaEncoder.exe]", 9
'parameter: 0=hide, 7=minimized, 9=normal
'Give FME time to load
WScript.Sleep 5000 'milliseconds to wait
WshShell.AppActivate "Adobe Flash Media Encoder"
WshShell.SendKeys "%fo" 'Open a custom config
WshShell.SendKeys "custom.xml"
WshShell.SendKeys "{ENTER}" 'Start encoding
WshShell.SendKeys "{ENTER}" 'Confirm
This second, tiny script close the FME application.
WshShell.AppActivate "Adobe Flash Media Encoder"
WshShell.SendKeys "%fx"
WshShell.SendKeys "{ENTER}"
This simple control, can be enriched if needed. You can, for example, hide the FME window to the user or also try to read the log file to know the exact state of the application.
The only difficulty is to control multiple istance of FME, but I'm working on it...
Fabio Sonnati ::
March 1, 2007
New exciting applications for Flash Video professionals
The last 15 months have been very exciting and rich of new and promising evolutions for Flash Video professional developers. At First, the embedding of the Vp6 video technology in the FP8, the release of FMS 2, the start of the promising Red5 project, more recently the new license for the developer edition of FMS2. Now, two new applications contribute to further promote Flash Video Technology as the 'de facto' web video standard.
The first is Wowza Media Server 1.0.
According to the press release, it is a Java based high-performance alternative to Adobe Flash Media Server that enables dramatic improvements in Flash streaming economics. Wowza offer a 10 connections license for free, 50 cc for 750$, 150 cc for 2250$ and unlimited cc edition at 5000$. It seems a competitive license scheme.
The second is Adobe's Flash Media Encoder (FME), a Windows desktop applications capable to grab, encode and stream a video source to FMS2 using On2's VP6 codec.
I tested it for a while and:
It features a wide set of options and settings. My preferite are: crop, resizing, de-noising and de-interlacing filters. Quality and CPU usage are excellent. Not bad at all, but the best news is
that it is FREE (must be used with a licensed FMS).
The only problem is the lack of a command line or programmatic mode, at least until the next release.
Fabio Sonnati ::
February 11, 2007
One more High Definition Video Sample
The video is encoded at 1280x720 progressive - 1200Kbit/s for video and 96Kbit/s for audio. To go FullScreen use the context menu. Obviously, to view the clip without rebuffering, you need at least 1.3Mbit/s of available bandwidth. The movie is smoothed and filtered with On2's deblocking and deringing filters. What do you think ? is Flash Video ready to enable real HD web contents ?
HD sample 4 - 1280x720 (720p) - 1300Kbit/s
Fabio Sonnati ::
January 27, 2007
Testing the AverVision 130 with FMS2
My new document Camera is finally arrived. It is an AverVision 130. I remember you that a Document Camera (see picture on the left), is in short an arm mounted webcam designed to grab images and video from real objects and documents.
Document cameras are very usefull to show sketches, prototypes, paintings, mechanical, archeological objects, etc.. etc.. to an audience or students.
Usually I use them with LiveBoard, a FMS based application capable to broadcast a document cam with interactive tools and interface (white boards, chat, digital pan&zoom, bidirectional audio, and so on).
Document Cam are, usually, really expensive. Some vendors propose highly professional instruments at 1000-1500$ or more.
But my customers needed an affordable DCam for large deployment. This Cam can do the job: It is very solid, has a good CCD sensor (1024x768) with manual focus (much better than the majority of fixed focus high-end webcams). The goosneck mounted sensor can be be positioned precisely and the final video quality is from good to very good and works well with Flash and FMS2. In conclusion, I can say to be satisfied with this piece of hardware.
Here you fine the AverVision 130 full specifications:
- Image Sensor: 1/2" Color CMOS Image Sensor
- Effective Pixels: 1024(H) x 768(V)
- Gooseneck: 22"
- Frame Rate: 12 fps
- Zoom: 4X Digital Zoom/Pan
- Lens: F3.0, f=9.6mm
- Focus: Manual
- White Balance: Auto/Manual
- Exposure:Auto/Manual
- Flicker Filter Control: 2 Levels
- Video Output: XGA, S-Video, Composite, USB
- DC 12V: Provided
- LED Module (detachable): Optional with Patented Laser Positioning Pointers
- Weight: 3.8lbs

Fabio Sonnati ::
OLDER ARTICLES:
:: 2006
:: 2005 |
|