我想使用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
而已…