128 video conversion
我将使用什么命令将 mp4 或 mv4 视频文件转换为动画 gif,反之亦然。也就是说,将动画 gif 转换为 mp4 或 mv4。
小智 187
以下是对我有用的内容:
ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4
Run Code Online (Sandbox Code Playgroud)
movflags – 此选项优化 MP4 文件的结构,以便浏览器可以尽快加载它。
pix_fmt – MP4 视频以不同格式存储像素。我们包含此选项以指定在所有浏览器中具有最大兼容性的特定格式。
vf – 使用 H.264 的 MP4 视频需要具有可被 2 整除的尺寸。此选项确保了这种情况。
来源:http : //rigor.com/blog/2015/12/optimizing-animated-gifs-with-html5-video
Ben*_*enC 50
就我而言,ffmpeg直接使用可以解决问题并提供最佳结果:
$ ffmpeg -f gif -i infile.gif outfile.mp4
Run Code Online (Sandbox Code Playgroud)
如果您想在“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
Run Code Online (Sandbox Code Playgroud)
对于5 个循环电影示例:
ffmpeg -stream_loop 5 -i my.gif loop.gif -y;ffmpeg -i loop.gif -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" loop.mp4 -y
Run Code Online (Sandbox Code Playgroud)
请注意:有一个-y 选项,因此输出文件将被覆盖
所述-vf选项是解决比率相称[宽度VS高度]
将 GIF 动画转换为视频的另一种方法:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.mp4
Run Code Online (Sandbox Code Playgroud)
-crf 值可以从 4 到 63。值越低意味着质量越好。-b:v 是允许的最大比特率。更高意味着更好的质量。
旁注:重要的是要指定,-pix_fmt yuv420p以免您的视频在各种工具中看起来像是黑色矩形:
$ ffmpeg -i animated.gif -pix_fmt yuv420p output.mp4
Run Code Online (Sandbox Code Playgroud)