|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
* I5 V6 D, T, E9 |% i; l' \用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
# [* n0 V7 d- V" V: V9 R' [下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
6 a9 ~( K: O2 a# ?8 h, x2 Mdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
5 \! [; b, k% v' ?" Q/ Y # 创建输出文件夹
( y! [, f$ a) v! G |1 m, q7 C) F os.makedirs(output_folder, exist_ok=True)
5 E4 T: ]* c# Y1 U # 打开视频文件9 [0 x" s- \1 [ U) N6 g- \(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)2 T6 _& M3 |$ p& u/ H2 f, e(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
) |+ ~3 S Z: n# g$ {6 J" o% r video_duration = video_clip.duration$ u) q1 a9 p$ i! q+ m- t+ E$ \(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)9 _7 u g, _3 h7 o1 }" G+ D(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs) ~; A8 Q: L( F4 N1 K5 b3 f(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
0 q/ E V* t) f8 O, a) H random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])& K* [5 s9 U8 v$ G) N7 w(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
* f/ Q, e* t( |% ?" @. ]* o video_clip = VideoFileClip(video_path). [+ |& d% y6 A9 ~( G. Z, b(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
& [1 \8 b1 [5 I, S; S9 c for i, t in enumerate(random_times):% ~! \7 y5 T" P% H; q# x$ q( ^(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
7 Z3 D0 q8 F$ \- U clip = video_clip.subclip(t, t + gif_duration)
" M8 S* I7 {/ o4 d: d l; j7 n # 调整 GIF 图片大小
3 _( N7 H1 y9 H7 I0 J. U resized_clip = clip.resize((target_width, target_height))
9 a+ Z4 E6 h9 L7 x( H+ x$ S # 生成 GIF 文件的路径
- e+ e' A' m7 L- m' Z gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")) M6 Z1 X% m; {7 N( S, _: ?(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
6 s3 ~' y; S% C$ F/ B4 `( W0 m( w& S print(f"正在处理第 {i + 1} 张图片")
' d# i( B- ~, | # 写入 GIF 文件
! I n {# W: Z* u1 \* e resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus"); ~. s% \; z7 K$ C(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
+ F: o3 [4 X. @7 `" O) T0 P video_clip.close()
2 B3 Q$ w! Y! W/ Z
~! T9 j6 O$ }; m0 G3 z+ C+ U5 O9 b7 x& K* C/ ^$ N. N(欢迎访问老王论坛:laowang.vip)
( ~$ r- h: x7 n9 o5 ?& T& @& E# g2 ?- ~- f4 y% T8 m1 P(欢迎访问老王论坛:laowang.vip)
- S& { g( i c7 V! o& x# E: L' C0 Q1 ?(欢迎访问老王论坛:laowang.vip)
5 g* v: Y f% Z/ s" r( o9 @ |
|