【问题标题】:FFMPEG and convert swf to image?FFMPEG 并将 swf 转换为图像?
【发布时间】:2011-07-09 01:19:46
【问题描述】:

我想使用 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 转换为图像还建议其他方式听起来有帮助吗?

【问题讨论】:

  • FFMPEG 支持 swf?不知道...你在哪里看到的?
  • @ronag: $ ffmpeg -formats 返回`DE swf Flash 格式`

标签: c++ linux flash ffmpeg codec


【解决方案1】:

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

就是这样……

【讨论】:

  • 我用cws2fws解压SWF文件你的意思是用ffmpeg转换需要不同的解压方式?
  • 不,我刚刚尝试了一个独立的测试,从你的示例文件开始: 1. 使用 swfcombine (由 swftools 提供)进行反压缩; 2. 尝试使用 swfextract 提取数据。问题是我只能找到形状数据,不能再找到了。 Cws2fws 可能正确地完成了这项工作,但是没有视频可以提供 mencoder 或 ffmpeg,没有 png ......我不知道只用形状可以做什么。 (你肯定注意到我不是 Flash 大师)
  • 明白了!!!! swfrender 由 swftools 提供。 $ swfrender Movie1.swf -o output.png 你会在 png 输出中获得动画的第一张图片。无需解压或解压……现在,它是否足以满足您的需求,或者您会得到几个 png(即动画)?
  • Arrgghh... 刚刚找到 stackoverflow.com/questions/2001946/convert-swf-to-png 。从您最初的 ffmpeg 调用开始,我假设您已经知道那个……
  • 真的谢谢,为你重播 swfrender 完成工作:D
猜你喜欢
  • 2011-01-17
  • 2016-01-14
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多