change trunk to master for snapshot version
[gnash.git] / README.dump-gnash
blob49e7aa764cb618ef8d3ba04a9028e10762ea4f10
1 http://www.xmission.com/~ink/gnash/README.txt:
3 Gnash stream dumper
4 ===================
6 This is an experimental build of gnash that allows the user to dump
7 both the raw (BGRA24) video stream, and the raw (PCM/Wave) audio
8 stream from a movie.  The "dump gui" is disabled by default, you'd
9 need to compile it with something like this:
11 ./configure \
12     --prefix=/usr/local/gnash-dump \
13     --enable-renderer=agg \
14     --enable-gui=gtk,dump \
15     --enable-media=ffmpeg \
16     --disable-kparts \
17     --disable-nsapi \
18     --disable-menus
20 It *requires* AGG as the renderer and *FFmpeg* as the sound driver.
21 Although audio and video are separate (you can dump video, even if you
22 choose gstreamer for audio output).
24 Two new command-line parameters are available:
26   -A <file>     Audio dump file (wave format)
27   -D <file>     Video dump file (only valid with dump-gnash)
29 Once invoked, gnash will output sh-friendly information about the
30 results: 
32 $ /usr/local/gnash-dump/bin/dump-gnash -D blah.out -A \
33   blah.wav -t 85 ./sbemail45.swf
35   # Created 44100 16Mhz stereo wave file:
36   AUDIOFILE=blah.wav
37   # WARNING:  Gnash was told to loop the movie
38   # Gnash created a raw dump file with the following properties:
39   COLORSPACE=BGRA32
40   NAME=blah.out
41   WIDTH=550
42   HEIGHT=400
43   INTERVAL=83
44   FPS_DESIRED=12.0482
45   TIME=85.0749
46   FPS_ACTUAL=12.0482
47   # Finished writing file
48   FRAMECOUNT=1026
50 One could then play the movie with mplayer:
52 mplayer -demuxer rawvideo \
53         -rawvideo fps=12.0482:w=550:h=400:format=bgra blah.out \
54         -audiofile ./blah.wav 
56 Or play it fullscreen, with hardware acceleration:
58 mplayer -demuxer rawvideo \
59         -rawvideo fps=12.0482:w=550:h=400:format=bgra blah.out \
60         -audiofile ./blah.wav \
61         -fs \
62         -vo xv
64 Or, convert it to YUV:
66 mplayer blah.out -vo yuv4mpeg:file=blah.yuv \
67         -demuxer rawvideo \
68         -rawvideo w=550:h=400:format=bgra:fps=12
70 And then make an MPEG-4/AC3 out of it:
72 mencoder blah.yuv -audiofile ./blah.wav \
73          -ovc lavc -oac lavc \
74          -lavcopts vcodec=mpeg4:acodec=ac3 -o blah.avi
76 Things To Do
77 ============
79  o Investigate gstreamer for audio stream capture.
80  o Let gnash send the bitmap data to places other than a file (eg, use
81    FFmpeg to encode on-the-fly).
82  o Have SDL output PCM data as fast as we can play the movie?
83  o Use something other than a polling loop for driver method.
84  o Use FFmpeg's swscale to convert AGG's RGB-only output to YUV, which
85    could then be sent to X11's XVideo extension for hardware scaling
86    (ala Adobe's Flash 9).  This could be a raw X11-only gui, or an
87    add-on to the gtk gui -- much in the same way that X11-shm is
88    #ifdef'd right now.
89  o Let the user specify which color space/bpp from AGG they want to
90    see (RGB24, RGB16, BGRA32, etc.).
91  o Remove gettimeofday calls so that it works on more operating
92    systems.
93  o Change automake to *not* include X11 libraries for the dump
94    renderer.  There is no reason that this "gui" couldn't run on a
95    headless server.