.SWFをアニメーションGIFに変換するコマンドライン

.SWFをアニメーションGIFに変換するコマンドライン

私はKubuntuを実行しています。ワインにWindowsアプリケーションをインストールしたくありません。 Flashアニメーション(.SWFファイル)をアニメーションGIFに変換する(比較的簡単な)コマンドが必要です。

入力.SWFファイルはわずか14.5KiBで、ファイル全体を最高の品質に変換したいと思います。 GIFのサイズが似ているようにしたいです。

インストールされているffmpegに関する情報は次のとおりです。

ffmpeg version 0.10.12-7:0.10.12-1~precise1 Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 26 2014 09:49:36 with gcc 4.6.3
configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~precise1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil      51. 35.100 / 51. 35.100
libavcodec     53. 61.100 / 53. 61.100
libavformat    53. 32.100 / 53. 32.100
libavdevice    53.  4.100 / 53.  4.100
libavfilter     2. 61.100 /  2. 61.100
libswscale      2.  1.100 /  2.  1.100
libswresample   0.  6.100 /  0.  6.100
libpostproc    52.  0.100 / 52.  0.100

答え1

これを行うための最も基本的なコマンドを試したかどうかについては、記事で言及していません。

ffmpeg -i input.swf output.gif

動作すると仮定すると、GIFは256色フォーマットなので、品質の問題が発生します。 (Imgurは最近WebMビデオでGIFVファイル形式を使用するように拡張しましたが、これは別のトピックです)

これがうまくいかない場合は、SWFデコーダやGIFエンコーダがないからです。このコマンドを実行すると、FFMpegバージョンでサポートされているコーデック/形式を確認できます。

ffmpeg -formats

出力は非常に冗長なので(すべての内容がリストされている)、grep次のように出力を減らすことができます。

ffmpeg -formats | grep -i GIF
ffmpeg -formats | grep -i SWF

私はこれを得ます:

 DE gif             GIF Animation
  E avm2            SWF (ShockWave Flash) (AVM2)
 DE swf             SWF (ShockWave Flash)

これは、私のFFMpegバージョンがGIFとSWFのデコードとエンコードをサポートしていることを示しています。

GIFの問題が発生する前に品質を確認するために、GIFに変換する前にAVIに変換をテストすることもできます。

ffmpeg -i input.swf -sameq output.avi

-sameqSWFには「品質」がないため、対応するフラグを使用しようとすると怒る可能性があります。-b:v 900kビデオビットレートをかなり高く設定することもできます。

修正する

リンクされたソースコードは、GCCライブラリと「zlib」ライブラリ(ほぼすべてのライブラリにあります)を持つすべてのLinuxシステムで簡単にコンパイルできます。コンパイル方法は次のとおりです。

sudo apt-get install build-essential zlib-dev
wget -o main.c "http://svn.perian.org/ffmpeg/tools/cws2fws.c"
gcc main.c -lz

これで、ツールを実行して次のように変換できます。

./a.out input.swf decompressed.swf

乾杯

関連情報