FFMPEG并将swf转换为图像?

时间:2011-03-04 18:56:53

标签: c++ linux flash ffmpeg codec

我想使用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转换为图像还建议其他方式声音有用吗?

1 个答案:

答案 0 :(得分:1)

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

$ 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

就是这样......