咬牙切齿:
git clone git://git.sv.gnu.org/gnash.git
在构建它之前,您需要一堆依赖项(应该能够全部获取):
libsdl-dev
libboost-dev
libagg-dev
然后配置和构建 gnash 视频转储器:
cd gnash
./autogen.sh
./configure --enable-renderer=agg \
--enable-gui=dump \
--disable-menus \
--enable-media=ffmpeg \
--disable-jemalloc
make
然后你可以将 dump-gnash 指向一个 swf,它会渲染出原始视频和音频
dump-gnash -1 \
-D /tmp/out.raw@30 \
-A /tmp/out.wav \
-P "FlashVars=myURL=http://example.com/blah&online=true" \
http://example.com/blah/some.swf \
这将以 30fps(位)写出/tmp/out.raw
(bgra aka rgb32 视频)和@30
/tmp/out.wav
这些需要重新组合成例如mp4,使用:
ffmpeg -i /tmp/out.wav \
-f rawvideo \
-pix_fmt rgb32 \
-s:v 800x550 \
-r 30 \
-i /tmp/out.raw \
-c:v libx264 \
-r 30 \
-b 160k \
/tmp/out.mp4
因为它的原始视频,ffmpeg 需要知道颜色空间(rga32)尺寸和输入 fps。我们告诉它合并音频(160kbps mp3),以 30fps 的速度渲染视频
您需要额外的标志来获得无损 mp4。