C++ FFMPEG并将swf转换为图像?
我想使用ffmpeg将swf转换为png,但我无法从某种swf中提取图像,如: 我在bat文件(1.bat)中使用此代码 请帮帮我!!C++ FFMPEG并将swf转换为图像?,c++,linux,flash,ffmpeg,codec,C++,Linux,Flash,Ffmpeg,Codec,我想使用ffmpeg将swf转换为png,但我无法从某种swf中提取图像,如: 我在bat文件(1.bat)中使用此代码 请帮帮我!! 我只想将swf转换为图像还建议其他方式听起来有用吗?孟码器不支持压缩[swf@0xc230a0]不支持压缩的swf格式。尝试一下(我在编译swftools后尝试过自己,但没有成功)。swfextract返回 $ swfextract test.swf Objects in file test.swf: [-i] 1 Shape: ID(s) 1 [-f] 1
我只想将swf转换为图像还建议其他方式听起来有用吗?孟码器不支持压缩
[swf@0xc230a0]不支持压缩的swf格式
。尝试一下(我在编译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快速编写):
就这样…FFMPEG支持swf吗?我不知道。。。你在哪里看到的?@ronag:
$ffmpeg-formats
返回`DE swf Flash format`我使用cws2fws解压缩swf文件你的意思是使用需要不同解压缩的ffmpeg进行转换?不,我刚刚从你的示例文件开始尝试了一个独立测试:1。使用swfcombine(由swftools提供)进行解压缩;2.尝试使用swfextract提取数据。问题是我只能找到形状数据,再也找不到了。Cws2fws可能正确地完成了这项工作,但没有视频馈送mencoder或ffmpeg,没有png。。。我不知道只有形状能做什么。(你肯定注意到我不是闪光大师)明白了!!!!swfrender由swftools提供$swfrender Movie1.swf-o output.png
然后在png输出中获得动画的第一个图像。不需要解压或提取…现在,它是否足以满足您的需要,或者您是否会得到几个png(即动画)?Arrgghh…刚刚找到。从最初的ffmpeg调用中,我假设您已经知道了一个…真的是Thx,因为您需要重播swfrender以完成任务:D
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;
}
#!/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