|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
. H6 _. b m) j2 E$ S用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif: y7 O$ m8 k% J( K(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
! Q/ `: ^, |# l8 ddef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540): d$ K, f- C& S: f& U$ k* O9 S(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹
2 h: Z5 h! s2 u' O9 C os.makedirs(output_folder, exist_ok=True)
9 a4 C/ x+ F1 ]; K/ L # 打开视频文件) [1 K% x9 n; Z V/ K6 x+ ?& P(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)5 b3 ~% Y. A d! M" a2 V(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间! @" \* Y9 J3 f/ t2 T$ [3 x, {& }(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration! O. E" w" M% O% i(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)" g2 A3 \" t' o( h! ^(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)6 q1 F0 Q; r+ M, K& I2 x(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点" x) x/ I' V# W+ E; E6 n% l(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])! |# G) D) ^: Q- i' W3 D(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
) h0 ?+ u, y) U3 _, i9 J* H video_clip = VideoFileClip(video_path)
8 B6 q( h, E- E; R3 f # 为每个时间节点生成 GIF 图片
1 V. B5 M9 U7 m; t for i, t in enumerate(random_times):
0 }% A% `" ?3 u+ I # 提取剪辑
- r( o% q0 o" W, V9 g" E$ w clip = video_clip.subclip(t, t + gif_duration)
! I0 A, _( [* z1 b # 调整 GIF 图片大小7 @( J+ A9 {. H p* q& ~(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))$ G$ ~) W& q* J- O(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
0 a6 N" U7 F! ~* ^8 `2 Z gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
5 n2 Y2 B( `) L. r5 P) k # 输出处理信息
. z# b/ m1 C& i print(f"正在处理第 {i + 1} 张图片")( h) \, i- ~* u! L- T" E(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
! ]6 P4 W7 ^ j. c7 @0 { resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
; \6 O8 N; h3 ?7 N9 Y1 g! @# x" z # 关闭视频文件4 V5 B o& }7 z. i6 Q(欢迎访问老王论坛:laowang.vip)
video_clip.close()3 Z, D3 o6 V* f' J5 Q. E/ E9 a(欢迎访问老王论坛:laowang.vip)
% t: h8 I, d" i" b+ L# s(欢迎访问老王论坛:laowang.vip)
7 ^/ y3 Y2 B2 x" Y* ~! [2 k1 J# n8 w: X(欢迎访问老王论坛:laowang.vip)
+ p! y" m4 L9 Z" @& \/ y) p4 L/ d0 ]& W(欢迎访问老王论坛:laowang.vip)
+ j! ?: X5 i; B& d& u" ~- D2 k: h4 L) C. q0 W6 Y/ o; g! C(欢迎访问老王论坛:laowang.vip)
|
|