回答:
ここに私のために働いたものがあります:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
movflags –このオプションは、MP4ファイルの構造を最適化して、ブラウザーができるだけ早くそれをロードできるようにします。
pix_fmt – MP4ビデオはピクセルをさまざまな形式で保存します。このオプションを含めると、すべてのブラウザーで最大限の互換性を持つ特定の形式を指定できます。
vf – H.264を使用するMP4ビデオは、2で割り切れるサイズにする必要があります。このオプションにより、そのようなことが保証されます。
出典:http : //rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
scale
してcrop
あなただけのほとんどの1つのピクセルで切断することになるだろうと、)。スケーリングは物事をぼやけさせるかもしれません
私の場合、ffmpeg
直接使用することでトリックが行われ、最良の結果が得られました。
$ ffmpeg -f gif -i infile.gif outfile.mp4
「nループ」で出力する場合は、このソリューションを一発で見てください
だから、normal.gifをloop.mp4に変換しましょう
2ループの映画の例:
ffmpeg -stream_loop 2 -i normal.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y
5ループの映画の例:
ffmpeg -stream_loop 5 -i normal.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y
注意してください:-y [上書き用]があります
ffmpeg
コマンドを実行すると、誤って上書きしたくない可能性がはるかに少なくなります。(おそらく、ビデオをそれ自体にパイプする方法もあり、これを中間ファイルと上書きなしでパイプされた1つのコマンドで実行します。) -y
ffmpeg
MacOsのバージョンは次のとおりです。
$ ffmpeg -i input.avi -pix_fmt yuv420p output.mp4