.movを.gifに変換するffmpegを取得するにはどうすればよいですか?


99

.movを.gifに変換しようとしていますが、成功していません。

エラーは次のとおりです。

ffmpeg -pix_fmt rgb24 -i yesbuddy.mov output.gif
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
  built on Jun 12 2012 17:47:34 with clang 2.1 (tags/Apple/clang-163.7.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/0.11.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/clang --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --disable-ffplay
  libavutil      51. 54.100 / 51. 54.100
  libavcodec     54. 23.100 / 54. 23.100
  libavformat    54.  6.100 / 54.  6.100
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 77.100 /  2. 77.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Option pixel_format not found.

-pix_fmt rgb24の部分を省略した場合、文句を言います。修正方法についての考えは?


3
参考までに、ここに記載されている高品質の変換のための優れたソリューションがあります
ryanjdillon 14年

回答:


161

コマンドライン引数の順序は重要です。このコマンドラインは機能するはずですが、巨大なファイルを生成します。

ffmpeg -i yesbuddy.mov -pix_fmt rgb24 output.gif

変換するときにフレームレートとサイズを減らし、開始時間と継続時間を指定することをお勧めします。おそらく、ファイル全体を元の解像度とフレームレートで変換したくないでしょう。

ffmpeg -ss 00:00:00.000 -i yesbuddy.mov -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

ファイルサイズはまだ巨大です。あなたは使用することができる可能性がImageMagickのサイズを小さくするためのGIFオプティマイザを:

convert -layers Optimize output.gif output_optimized.gif

3
素晴らしい回答、ありがとう:) GIFはクレイジーなフォーマットです...元の.movは250kで、ffmpegから変換された.gifは8mbで、convert最適化されたバージョンは驚くべき10kでした!印象的!
TooTallNate

19
ffmpegはピクセル形式について不平を言い、rgb24からpal8に切り替えます。回答のコマンドを更新する必要がありますか?
user1071136 14年

7
コーデック 'gif'の互換性のないピクセル形式 'rgb24'
highmaintenance 14

1
ffmpegの私のバージョンでは、@ Andyはrgb8に自動修正されました。
ジェームスキャンベル

Androidでの操作方法
アジャイシュレスタ

12

変換後:

ffmpeg -i input.mp4 input.gif 

フレームを最適化してみてください:

convert input.gif -verbose -coalesce -layers OptimizeFrame input_optframe.gif

そしてgifsicle、最終的な最適化を行うために使用します。

gifsicle -O2 input_optframe.gif -o optimized.gif

12.2mbビデオから6.8mb GIFをほぼ同じ品質で取得しました!


3
これらの手順がどのように機能し、何をしているのかを説明してください。
レイスタファリアン14年

10

FFmpeg、ImageMagick、およびgiflossyを、1行でインストールできる単一の使いやすいコマンドラインプログラムにバンドルするツールを作成しました:https : //github.com/vvo/gifify

3つのドキュメントWebサイトをブラウズしてGIFのサイズを変更したり、開始/終了時間を変更する方法を理解するのに多くの時間を費やすのではなく、ビデオ=> GIFを使用してください。


1
マシンでDockerを実行している場合は、次のようにエイリアスを実行します。alias gifify='docker run -it --rm -v $(pwd):/data maxogden/gifify'それを使用しますgifify screencast.mkv -o screencast.gif --resize 800:-1
-sabbour

2
ffmpeg -y -i input.mp4 -f image2pipe -vcodec ppm - | convert -delay 2 -loop 0 -layers Optimize - gif:- | gifsicle -d 3 -O3 -o optimized.gif

最初にffmpegを使用してパイプ経由でmp4ファイルを画像に変換し、次にimagemagickを使用してgifに圧縮し、最後にgifsicleで最適化します

gifscicleを直接使用してもうまくいかない理由はわかりません。

または、これでgifを小さくすることができます

convert -dither none -matte -depth 8 -deconstruct -layers optimizePlus -colors 32 in.gif out.gif
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.