SWFTools Frequently Asked Questions (FAQ)
1.) What's the price of swftools?
SWFTools is free of charge (donations are welcome, though), and is
2.) Where can I donate?
released under the GPL (http://www.gnu.org/licenses/gpl.html).
You can donate via PayPal by clicking on the "donate" button
3.) How to compile/link swftools on Unix/Linux/BSD?
Download swftools-0.x.x.tar.gz. Then type, on the
4.) What libraries do I need to compile swftools on Unix/Linux/BSD?
tar -zvxf swftools-0.x.x.tar
(you will have to be root for the last step)
You need freetype and jpeglib to compile pdf2swf.
5.) when compiling the sourcecode version, configure doesn't find my jpeglib!
In case some of your libraries/include files are installed in /usr/local,
6.) There are problems during compilation:
try the following:
rm -f config.cache
LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
Furthermore, a new installation of jpeglib (the following assumes it's in
/usr/local/lib) often requires doing a
In order to install jpeglib, it's furthermore been remarked that you need
If it still doesn't work, try removing the file "config.cache"
before running configure again.
Error messages complain about "undefined reference to operator new(unsigned)"
as well as "undefined reference to __gxx_personality_v0".
Try running configure as
7.) How do I compile swftools on Mac OS X?
You need to get fink (http://fink.sourceforge.net), and install it.
8.) Is there a pdf2swf/avi2swf for Windows?
After this, you need to install all the required libs (jpeg, freetype, lame):
fink install libjpeg libjpeg-shlibs freetype2 freetype2-shlibs lame lame-shlibs
Then, you have to inform configure of where they are:
LDFLAGS="-L/sw/lib" CPPFLAGS="-I/sw/include -I/sw/include/lame" ./configure
sudo make install
If this doesn't work, especially if you want to use the python library and
get weird exceptions, try to remove all versions of jpeglib, freetype and
lame from /usr/lib and /usr/local/lib, and then run configure / make / make install
If you also want to use the python interface, you may have to copy the
Imaging headers (Imaging.h, ImPlatform.h, ImConfig.h) to
before running configure.
Windows versions of all SWF utilities are downloadable from
9.) Where's the source code of the Windows version?
(There's a self-extracting .exe version of all versions since 0.6.1,
and a .zip or .rar archive of the newest development snapshot)
It's the same as the Unix source code. If you want to compile
10.) The fonts in the SWFs generated by pdf2swf are wrong!
under Windows, it's recommended that you get the CVS version
of the sources.
You need MingW (http://www.mingw.org) to compile it.
When cross-compiling under Linux, e.g. the following generates the Windows .exe files:
CXX=i386-mingw32msvc-g++ CPP=i386-mingw32msvc-cpp CC=i386-mingw32msvc-gcc \
./configure --host=i586-mingw32msvc && make
For compiling on Windows itself, there's a HOWTO from Daichi Shinozaki:
Watch the output of pdf2swf closely.
11.) Can png2swf handle transparency?
You should see something like:
WARNING Font Myriad-Roman could not be loaded.
WARNING Try putting a TTF version of that font (named "Myriad-Roman.ttf") into /swftools/fonts
Provided you actually own the font in question (here: Myriad-Roman.ttf),
you can copy that fonts into your current directory and pass
the "-F ./" (--fontpath ./) option to pdf2swf.
If you use a font in several PDFs, you can also simply copy it
to (on Windows) C:\SWFTools\Fonts\, or (on Unix) /usr/local/share/swftools/fonts
to make it work all the time.
Yes. It supports PNG mode 2 transparency (256 color palettes with alpha) since version 0.4.2.
12.) How to do Flash MX compression with SWFTools?
Mode 6 (32 bit RGBA truecolor) is also supported since version 0.4.4.
Most tools support the -z flag for outputting compressed SWF.
13.) avi2swf converts my avi files upside down!
Furthermore you can compress/uncompress SWF files using swfcombine:
swfcombine -dz file.swf -o file_new.swf
swfcombine -d file.swf -o file_new.swf
Try using the -p (--flip) switch.
14.) How to extract images/sounds from myfile.swf using swfextract?
First list all extractable items:
15.) Is there a mailing list for SWFTools?
The result is something like:
Objects in file myfile.swf:
[-i] 3 Shapes: ID(s) 1-3
[-i] 5 MovieClips: ID(s) 4, 5, 8, 10, 12
[-j] 3 JPEGs: ID(s) 69, 116, 447
[-p] 1 PNG: ID(s) 318
[-s] 3 Sounds: ID(s) 28-30
[-f] 10 Frames: ID(s) 0-10
Now you can extract a shape using
swfextract -i 2 myfile.swf -o shape.swf
a sound using
swfextract -s 28 myfile.swf -o sound.wav
a PNG image file using
swfextract -p 318 myfile.swf -o file.png
Yes there is. You can subscribe by going to
16.) Why didn't Matthias answer my swftools-related mail?
Currently, Matthias is getting much more mails than he can answer. It's frustrating,
16.) When will feature/bugfix/enhancement XY be implemented?
but it's true.
He tries his best to at least *read* all mails he receives.
If you need an answer to something, it's usually more effective to post it on the
mailing list, though, as there are a lot of friendly users around there which may
have the one or other helpful tip concerning your problem.
Setting deadlines in a non-commercial, spare-time project like swftools tools is hard,
17.) How to compile avi2swf?
and keeping them is even harder, if not impossible.
Therefore, do not ask about deadlines, and you won't get fuzzy, or even wrong, answers.
avi2swf isn't part of the swftools distribution anymore. If you want to convert avi files
18.) How can I create transparent SWFs from PDFs?
to swf, please use either mencoder or ffmpeg:
mencoder file.avi -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \
-ffourcc FLV1 -oac mp3lame -of lavf -ovc lavc \
-lavcopts vcodec=flv:acodec=mp3:vbitrate=500:abitrate=56 -srate 22050 \
ffmpeg -i video.mpg -b -s y -pass 1 -passlogfile log_file video.flv
ffmpeg -i video.mpg -b -s y -pass 2 -passlogfile log_file video.flv
flvtool2 -UP video.flv
Run pdf2swf as usual, and then, on the resulting file, execute:
19.) How can I convert SWF frames to bitmap?
swfextract -i 3- file.swf -o file.swf
There's a "swfrender" utility in the CVS, which isn't finished yet,
and will only work for *very* simple SWF files. (No Actionscript, no
gradient fills, no morph shapes, no blending modes, no filters, etc.)
Probably other Flash Open-Source projects (like Gnash) have some
more sophisticated utilities for this. (One user reported that
swfdec (http://swfdec.freedesktop.org/wiki/) and pyswfdec
(http://www.gnome.org/~gianmt) work good)
If you find other tools that work, I'd like to know about it.
Please mail me at firstname.lastname@example.org.