次のコマンドを使用して、ビデオの一部をアニメーションGIFに抽出しようとしています。
ffmpeg -i video.avi -t 5 out.gif
アニメーションgifを生成しますが、品質は非常に優れています。ただし、次を使用してgif画像を生成する場合:
ffmpeg -i video.avi -t 10 out%d.gif
許容可能な品質のgif画像を生成します。最初のコマンドを使用して、2番目のコマンドと同じ品質のアニメーションGIFを生成するにはどうすればよいですか?
映画から抽出した一連の画像から高品質のアニメーションGIFを生成しようとしても、同様の問題がありました。
いくつかの理由で、ffmpegで生成されたアニメーションGIFには、固定256レベルのシステムカラーパレットを使用すると想定される103色しか含まれておらず、ひどい結果になります。私の解決策は代わりに
ffmpeg -i video.avi -t 10 out%02d.gif
それから
gifsicle --delay=10 --loop *.gif > anim.gif
品質は非常に良好です。 gifsicleを見つけることができます こちら
編集:投稿を更新して、Alex Kahnの提案を反映させました。
アニメーションGIFを作成したことはありませんが、ビットレートパラメーターを使用して、画像であるにもかかわらず(おそらくレートがない場合でも)品質を指定してみてください。サムネイルの品質は、-bパラメーターに応答します。 「非常に悪い」という意味であれば、非常に高いビットレートとビットレートの許容値を指定できます(vbrまたはcbrソースを使用しているかどうかはわかりません)。 (または、大きすぎてサイズを制限したい場合は反対を行います)
'-b', '10000000','-bt', '20000000'
または、-sパラメータを使用して寸法を変更することもできます。これは、「1920X1200」のような寸法の通常の外観を取ります。
それは、ソース素材のビットレートと圧縮、そしてgifがどのようになることを望むかに本当に依存します。 「非常識な」よりも多くの情報を提供することを検討するかもしれませんが、いずれにせよ、これはあなたに良いスタートを与えると思います。がんばろう