2011-11-29 14 views
1

動画をアニメーションGIFに変換するWebアプリケーションがあります。彼らは大規模な(ffmpegの-i -s 200×150で$ -an $アウト) PHP +シェルコマンドを使用して動画をアニメーションGIF変換する方法

  • 使用ffmpegのであれば、より小さな寸法に

    1. スケールビデオ:アプリはPHPで実行され、次のステップは、PHPのはshell_execを介して実行されていますx秒ごとに1つのJPEGを抽出する(ffmpeg -i $ in -ss $ ss -vframes 1 $ out)
    2. imagick(convert -delay $ delay -loop 0 $ dir/* $ out)を使用してjpegをアニメーションGIFに変換する

      脇に - 私はffmpeg gif89aの出力を使用しない理由は、品質が吸うためです。

    私は主要な画像形式を除きたいと思っていますが、最も一般的なのはおそらく.flv(フラッシュ)と.avi/.mpgです。

    私のアプリケーションは正常に動作しますが、私は完璧主義者であり、スケーラビリティのためにはより高速にする必要があります。

    私のWebサーバーには16個のコアがあり、できるだけそれらを利用したいと思っていますが、.flvマルチスレッドはffmpegでサポートされていないようですが、.aviと他のものもサポートされています。また、ffmpegはjpegに出力する際に​​マルチスレッドをサポートしていません。

    誰でも.flvなどのマルチスレッドをサポートする他のプログラムについて知っていますか?比較的まともな品質(ffmpegでサポートされている100色のパレットではない)を維持しながら、ビデオからアニメーションGIFを作成する効率的な方法はありますか?

    また、誰かが、特にFLVでステージ1と2に最適なパフォーマンスを発揮するコーデックを知っていれば、私は知りたいと思っています。私は何時間ものテストを行ってきましたが、多くの選択肢がありましたが、結論に至っていません。

    ***アップデート:私のオンラインアプリは、これまでのところよく動作していますanimated gif generator。私はまだそれを速くすることを愛するだろう、誰もが同様の状況に遭遇した場合...私に教えて!

  • +0

    http:// superuserを参照してください。com/questions/556029/how-do-i-convert-a-video-to-gif-ffmpeg-with-reasonable-quality – NeDark

    答えて

    0

    あなたはそれを変換することができ、直接私の知る限り、あなたはおそらく、フレームレート、サイズ等...(そうでない場合は、出力が巨大になります)のためのまともなデフォルト値で追加のユーザパラメータを追加する必要がありますし、画像を最適化するのに

    ffmpeg -i [input_video] output.gif 
    

    さらに、あなたはgifsicle使用することができます

    編集:[OK]を、合意のffmpegのGIFエンコーディングは改善を使用することができること - それはのような量子化器を追加することから最も利益を得ることができる:

    http://www.ece.mcmaster.ca/~xwu/cq.c

    アルゴリズム:インクルージョン排除トリックによって助け分散 最小化のためのRGB空間の貪欲直交する2分割。 速度に関しては、最近傍探索は行われない。やや高価なバージョン より洗練された でより良いパフォーマンスが期待できます。

    +0

    上記の私の「脇」を見てください。私は品質がひどいので、ffmpegのgif出力を使用しません。 – dylanwenzlau

    関連する問題