ffmpeg -ss 0.0 -i test.mov -an -filter_complex "[0:v]trim=start_frame=0:end_frame=75,fps=5,scale=320:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p] paletteuse[out0],[0:v]trim=start_frame=195:end_frame=265,fps=5,scale=320:-1:flags=lanczos,split[a][b];[a]palettegen [p];[b][p] paletteuse=[out1]" -map "[out0]" 1f.gif -map "[out1]" 2.gif -y
下面是该命令各部分的解释:
-ss 0.0
:将起始时间偏移量设置为0秒-i test.mov
:指定输入视频文件名-an
:禁用音频处理-filter_complex
:对视频帧应用复杂的滤镜图"..."
:指定滤镜图滤镜链[0:v]trim=start_frame=0:end_frame=75,fps=5,scale=320:-1:flags=lanczos,split[a][b];
:选择视频流([0:v]
)并对其应用多个滤镜:trim=start_frame=0:end_frame=75
:选择从开始到第75帧的帧fps=5
:将输出帧率设置为每秒5帧scale=320:-1:flags=lanczos
:将帧重新缩放为320像素宽度,同时保持宽高比并使用Lanczos缩放算法split[a][b];
:将过滤后的帧分成两个输出([a]
和[b]
),稍后将使用它们[a]palettegen[p];
:选择来自第一个输出([a]
)的帧并生成一个颜色调色板(palettegen
),该调色板将用于创建动画GIF[b][p] paletteuse[out0],
:选择来自第二个输出([b]
)的帧,并应用之前生成的调色板(paletteuse
)来创建一个动画GIF([out0]
)[0:v]trim=start_frame=195:end_frame=265,fps=5,scale=320:-1:flags=lanczos,split[a][b];
:选择视频流([0:v]
)并对其应用多个滤镜:trim=start_frame=195:end_frame=265
:选择从第195帧到第265帧的帧fps=5
:将输出帧率设置为每秒5帧scale=320:-1:flags=lanczos
:将帧重新缩放为320像素宽度,同时保持宽高比并使用Lanczos缩放算法split[a][b];
:将过滤后的帧分成两个输出([a]
和[b]
),稍后将使用它们[a]palettegen [p];
:选择来自第一个输出([a]
)的帧并生成一个颜色调色板(palettegen
),该调色板将用于创建第二个动画GIF[b][p] paletteuse=[out1]"
:选择来自第二个输出([b]
)的帧,并应用之前生成的调色板(paletteuse
)来创建另一个动画GIF([out1]
)-map "[out0]" 1f.gif
:将第一个输出([out0]
)映射到文件1f.gif
-map "[out1]" 2.gif
:将第二个输出([out1]
)映射到文件2.gif
-y
:在不要求确认的情况下覆盖输出文件总体而言,这个命令从输入视频文件中提取了两组帧,对每组帧应用了颜色调色板,并创建了两个宽度为320像素、每秒5帧的动画GIF(分别命名为1f.gif
和2.gif
)。
如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。
本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。