我想使用ffmpeg将swf转换为png,但是我无法从某种类型的swf提取图像,例如:http://rapidshare.com/files/450953994/Movie1.swf

我在bat文件(1.bat)中使用此代码

cws2fws Movie1.swf 3.swf
ffmpeg -i 3.swf -f image2 -vcodec png tese%d.png

请帮我!!
我只想将swf转换为图像,也建议其他方式听起来有用吗?

最佳答案

Mencoder不支持压缩[swf @ 0xc230a0]Compressed SWF format not supported。尝试http://www.swftools.org/download.html(我在编译swftools之后尝试过自己,但没有成功)。 swfextract返回

$ swfextract test.swf
Objects in file test.swf:
[-i] 1 Shape: ID(s) 1
[-f] 1 Frame: ID(s) 0

没有视频,没有声音,没有png…

更新-----

经过几次差事之后,swftools的swfrender完成了工作。没有未记录的pagerange选项。从swfrender.c:
int args_callback_option(char*name,char*val)
{
    if(!strcmp(name, "V")) {
        printf("swfrender - part of %s %s\n", PACKAGE, VERSION);
        exit(0);
    } else if(!strcmp(name, "o")) {

    […]

    } else if(!strcmp(name, "p")) {
        pagerange = val;
        return 1;
    } else if(!strcmp(name, "s")) {

    […]

    return 0;
}

现在知道了,您可以执行一个shell脚本(在这里使用bash既快捷又肮脏):
#!/bin/bash
let count=1
swfinput=$1
while :
do
    output=`basename $swfinput .swf`$count.png
    swfrender $swfinput -p $count -o $output
    if [ ! -f $output ];
    then
        break
    fi
    echo swfrender $swfinput -p $count -o $output
    ((count++))
done

而已…

09-25 17:42