我正在尝试将 .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 / …Run Code Online (Sandbox Code Playgroud) 我有一些图像,我想用 ffmpeg 制作动画 gif。图像的名称为:
837_1.png
838_1.png
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试取消ffmpeg的-i命令行选项,但我遇到了一些问题。
如果我没有指定任何内容,它会要求我替换文件:
ffmpeg -i * -vcodec libx264 out.mp4
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 …Run Code Online (Sandbox Code Playgroud) 对于 5 张图像,我必须在 ffmpeg 中创建 60 秒的视频,每张图像必须显示 15 秒。15 秒后,第一个图像必须淡出,第二个图像必须淡入,在第二个图像必须淡出之后,第三个图像必须淡入......等等。请指导我如何使用 ffmpeg 命令实现此目的。
我正在使用VirtualDub对这些设置进行编码。

但是,我以 1920x1080 记录我的东西并将其调整为 1280x720。现在的问题是:在做出平衡的质量与文件大小的决定时,我应该选择哪种算法?
我总是和 Lanczos 一起去,因为那是预先配置好的。这些描述对我的问题根本没有帮助。
我有一个输入视频 mp4。我需要创建一个 2 秒输出媒体,其中前进 1 秒,后退 1 秒(飞去来器效果),好的,如果我也将输出设置为 mp4,那么效果很好,但我需要将其输出设置为 GIF。我怎样才能做到这一点?
ffmpeg -t 1 -i input.mp4 -filter_complex "[0]reverse[r];[0][r]concat,loop=1:2,setpts=N/25/TB" output.mp4
Run Code Online (Sandbox Code Playgroud) 我想 ffmpeg 抓取 1280x720 MP4 视频文件,裁剪到正方形大小比例,将其调整为 640x640
以下两个命令对我有用,具有出色的 GIF 质量,但只是缺少正确的调整大小。它确实给了我一个 GIF 输出,但大小是 1138x640 而不是 640x640。
生成调色板:
ffmpeg -y -ss 30 -t 3 -i input.mp4 \
-vf fps=10,scale=1138:-1:flags=lanczos,palettegen palette.png
Run Code Online (Sandbox Code Playgroud)
使用调色板输出 GIF:
ffmpeg -ss 30 -t 3 -i input.mp4 -i palette.png -filter_complex \
"fps=10,scale=1138:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
Run Code Online (Sandbox Code Playgroud)
这给了我一个 1138x640.gif,但是如何在不依赖另一个单独命令的情况下将它变成 640x640?
我试图用透明度调整动画 GIF 的大小,但它把背景变成了纯白色。我如何保持透明度?
我阅读了https://superuser.com/a/556031/130929并尝试过
>set FILTERS=scale=320:-1:flags=lanczos
>ffmpeg -hide_banner -i logo.gif -vf "%FILTERS%,palettegen=stats_mode=diff" -y palette.png
>ffmpeg -hide_banner -i logo.gif -i palette.png -lavfi "%FILTERS% [x]; [x][1:v] paletteuse" logo-320.gif
Run Code Online (Sandbox Code Playgroud)
我也尝试过,-gifflags +transdiff但它没有帮助,因为答案中的博客文章说它是默认设置。我也试过没有stats_mode=diff.
我还尝试为每个帧使用一个调色板,但这只会使文件变大并且没有保持透明度。
>ffmpeg -hide_banner -i logo.gif -filter_complex "[0:v] scale=320:-1:flags=lanczos,split [a][b]; [a] palettegen=stats_mode=single [p]; [b][p] paletteuse=new=1" logo-320.gif
Run Code Online (Sandbox Code Playgroud) ffmpeg ×7
gif ×2
animated-gif ×1
conversion ×1
encoding ×1
images ×1
transparency ×1
video ×1
virtualdub ×1