|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
' `6 U; {# Q6 j2 P: d, g5 q用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
% V4 A; L' E3 W K) Z7 z下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你% E) |) g0 r2 A- j0 ](欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):# @. Z) L( S I6 _/ s- r7 b- N9 j(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹
/ y: {) Z5 ]7 W, g os.makedirs(output_folder, exist_ok=True)
/ o. h& {& U3 K* A) J6 g7 {6 O # 打开视频文件
' A. S' U {- M8 ?$ u4 f$ Z video_clip = VideoFileClip(video_path)
' Q( K# j" [, R* o" i # 获取视频的持续时间
) d f2 E: Q6 p" v4 H video_duration = video_clip.duration
, b' V4 d: I1 \) L/ I% ]" A- R' Z # 确定每个 GIF 的持续时间(以秒为单位) y( o$ [. G* {. x) u+ b(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs): Q9 |& x& w9 L2 x: K& }; Q(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
+ B3 o& X! w! e! {/ j1 g0 h8 P5 _5 t random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])0 e+ g4 O8 s; C! P; ^- a(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
$ v5 T g, K4 h5 | video_clip = VideoFileClip(video_path)
4 x& \8 y! K/ v, F$ x2 s5 m # 为每个时间节点生成 GIF 图片! l/ [/ V8 z- ]5 V! j(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):# |& }2 V/ G4 ~. ?0 O6 l, ~( P! v(欢迎访问老王论坛:laowang.vip)
# 提取剪辑* `! F+ A6 W: E" L6 N(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
3 H+ f, H/ P: X1 I% c # 调整 GIF 图片大小
7 g3 E! _" Z( S Q resized_clip = clip.resize((target_width, target_height))0 k9 ^4 ?/ N& Y6 G1 F3 A% y- K(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
7 ~( w# M# o2 G9 b6 p$ p. O3 w; ? gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
, H0 e8 d/ i! i # 输出处理信息( f& v% {+ F1 S8 W" ^' P' ^. K' W(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")
0 b4 d$ m3 ~' x# p* k" ~ # 写入 GIF 文件
8 E- q, P% `$ J6 k resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus"), z2 z' y. B0 L! W(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件7 C' a* W* |/ }(欢迎访问老王论坛:laowang.vip)
video_clip.close()
/ H( K# ]0 F) K% Z" `
+ Q6 G# _+ T) N- D- _6 w$ U# l, C7 s6 W0 m0 Y9 T5 p7 ^, z(欢迎访问老王论坛:laowang.vip)
' f6 P) G* T! k! a7 G(欢迎访问老王论坛:laowang.vip)
" G. I9 p! r( I6 B |: h3 `* P. X- `% Q& w1 e' p' r9 S! [5 X+ i(欢迎访问老王论坛:laowang.vip)
) V- J& X: M% {( k7 |5 J2 {: A1 C8 D' `+ v _(欢迎访问老王论坛:laowang.vip)
|
|