Ming - an SWF output library and PHP module
Ming is a c library for generating SWF ("Flash") format movies, plus a set of wrappers for using the library from c++ and popular scripting languages like PHP, Python, and Ruby.


5.30.02 - a Ming tutorial

..by Navneet Behal, demonstrating using Ming to wrap images into SWF files on the server:


5.25.02 - opaque.net upgraded to PHP 4.2.1

..and it looks like everything's working. The 4.2.1 source at php.net now has the latest ming wrapper code, which means it'll work just fine with Ming 0.2a. My eternal gratitude to whoever slogged through my code to make this work.

4.15.02 - a wiki for Ming!

I'm embarassed to say I've had this together for a couple of months but never posted it, thinking I'd soon have the time to flesh it out more. I've finally realized that won't happen, so here it is.

What's a wiki? It's a collaborative document system that lets users add information.. Like a message board, only much cooler. This should make it much easier for you to find answers to your questions and get up-to-date information on Ming, since the wiki can be updated much easier than these web pages.

Feel free to add new pages to the wiki- but do try to make it marginally useful to others, won't you?

1.28.02 - no news

..is good news, right?

I'm working on fixing Ming's PHP-4.1 code, and making Ming work on OS X. But it's not free time I'm swamped with..

9.06.01 - stuff

Two things:

First, Jerry Jasuta, Wolfgang Hamann and the inimitable Martin Fasani have put together some Ming tutorials for your edification: http://www.neuralust.com/~mingdocs/.

Second, the user-friendly Apache installer http://www.apachetoolbox.com/ now includes Ming 0.2a!

8.17.01 - Ming 0.2a

Here it is, and only a month or two late. I've finally fixed the mp3 streaming, Flash 5 actions work (many thanks to Wolfgang Hamann who found a bevy of compiler bugs and added some useful features), plus Soheil Seyfaie has created a Perl wrapper! Here's the compiled PHP extension for Linux/x86:

php_ming.so for PHP 4.0.6
php_ming.so for PHP 4.0.7-dev (CVS)
If you're building from source, you'll notice that the php_ext/ dir has two versions of ming.c, one for 4.0.6 and one for 4.0.7- just copy whichever you need to ming.c before building. If you're trying to build ming into an older version of PHP, good luck- you're on your own.

Documentation is forthcoming, as always.


Here's a chronicle of one man's adventures in installing Ming on Debian.


I'll be in NYC for the next week, so if you email me don't expect an answer for a while. (If you expected an answer at all..) In the mean time, here's some random cool stuff- first, an SVG to SWF translator. I'm really amazed how well it works.. Also, an XML to SWF thingy. Haven't played with it myself, but it looks cool.


While all y'all are boozing it up at FFNYC I'm still here slaving over code..

This here's a pre-release release of the next Ming, adding support for Flash 5 actionscript.

If you need to make your old Flash 4-based action code work, add Ming_useSWFVersion(4); to tell Ming to use the old compiler.

No, this doesn't fix mp3 streaming or add any of the cool features people have sent me patches for- I'm just trying to get the code out so that people aren't sending me bug reports for things I fixed months ago.. If anything breaks with this code, please mail me and I'll fix it immediately.

That was only a little sarcastic, really..


There's an article about Ming at ONLamp.com, some kind of O'Reilly gig. I, uh, haven't actually read it yet, but it looks like.. an article about Ming. Remember not to click on the evil DoubleClick ads.

And, yes, Ming 0.2 should be coming out in the next few days..


This is old news, but I've been slow: Armel Grignon has built a search tool for the ming-fun mailing list.


Here's a sneak preview of a new Ming feature, Flash 5 actions. That's right- we did it first, but now we're catching up again. I'll put the code into CVS as soon as SourceForge wakes up. Official release as soon as I get some idea how many people will hate me for dropping support for Flash 4 action code.

Even more exciting, Jonathan Shore has written a Java wrapper for Ming, bringing the number of Mingified languages up to.. I don't know, a lot. That code's in CVS too, which again means it's out of reach until SF brings CVS back online. Until then, suffer.


Flash sound guru Martin Fasani is hosting a ming forum. And other fun stuff, too.

And Armel Grignon has created a very cool text effect webtool with Ming.


Getting complaints about add_property_resource_ex not defined when you load ming into php as a loadable module? Try this'n instead: php_ming.so-4.0.4.tgz

4.13.01 - Ming 0.1.1

Wacky New Data Handling

In the PHP wrapper, the SWFBitmap constructor and SWFMovie->streamMP3 functions now take filehandle or big-wad-o-data arguments. That means you can pass in an fopen'ed url, a blob from your database, or whatever- but not the filename!

$s->setRightFill(new SWFBitmap("foo.jpg"))

$s->setRightFill(new SWFBitmap(fopen("foo.jpg", "r")))

Yeah, I said I wouldn't be so casual about changing the api after 0.1.0.. But I say a lot of crazy things, don't I?

Under the hood, this is done with the new SWFInput object, which attempts to abstract data sources like buffers and file pointers. You probably don't need to know that, but if you go digging through the source and see that, that's what it is.

Handy Bitmap Shortcut

Now if you add an SWFBitmap to an SWFMovie, Ming wraps it into the properly-sized SWFShape for you.

Better Error Handling

Ming now has settable error handlers so we can propagate errors up into the wrapper code- no more embarassing and unsightly core dumps.

Updated c++ Header

Finally. Sorry about the delay. Also, it's called mingpp.h now and gets installed in your include dir alongside the ming.h header. Now that's convenience.

3.18.01 - Ming 0.1.0

This one fixes that annoying scaling problem- y'know, where ming movies loaded into flash movies at 1/20th the size. Fixed. All of the scalar data pass through scaling wrappers now. You have control over the scale, though, so to make all your old code work just do


for the "classic" scale. (Just so you know, the default scale is 20.) If you have no idea what I'm talking about, good. The interface is the same, except now you can use floats for scalars.

mp3 compatibility is improved, too, I hope. Lots of other small bugs were fixed as well but I forgot to write them down.

Also, ming-winutils.zip is some of the ming util progs for windows/dos: listswf, listfdb, makefdb, and png2dbl are here. I can't seem to get libungif installed in my cross-compiling environment, so gif2dbl and gif2mask aren't in there. So sorry.

And, here's the Ming docs in htmlhelp (.chm) format. Many thanks to Korakot Chaovavanich for putting this together.

Finally, php users should note that php 4.0.5dev (php4 in cvs) requires Ming 0.1.0.

2.05.01 - Hallelujah!

I don't have to worry about figuring out how to build RPMs of ming anymore because Troels Arvin has done it for me:

http://rpms.arvin.dk/ming/ has the ming library itself, and here's the i586 and i686 versions of the php module.

1.21.01 - d'oh!-

I forgot to point out the ming python pyd for windows python users. "Mad props" (as the kids say these days) to Itamar Shtull-Trauring for this one..


  • version 0.2a:     + (.tgz)
        + (.zip)

  • examples package:     + (.tgz)
        + (.zip)

  • older versions
  •    other stuff:
  • function reference
  • examples
  • installation howto
  • older news
  • tutorial-in-progress
  • FAQ
  • Ming CVS
  • bug tracking
  •    mailing lists:
  • ming-announce
  • ming-fun
  • contact
  • All content Copyright (C) 2000-2001 Opaque Industries except where noted otherwise.

    Macromedia(r) and Flash(tm) are trademarks or registered trademarks of Macromedia, Inc. in the United States and/or other countries.

    Macromedia(r) does not sponsor, affiliate, or endorse this product and/or services. Neither any ancient Chinese dynasties.