|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
& L& t4 A ]5 n0 n/ s; K E用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
$ P; [% i. V8 J下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你% q/ J+ l M) H(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
! N! }9 M# [/ m& Z# x, x4 X # 创建输出文件夹
( g p- |. s3 m* H. \ os.makedirs(output_folder, exist_ok=True)5 O1 b, j& q1 A5 k: W( v(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
8 R8 D- F) F/ Y( C/ K8 V# O- X video_clip = VideoFileClip(video_path)
$ j6 c$ i1 G3 G8 Q6 g; F- \2 G # 获取视频的持续时间9 y" }! y. t7 W$ v4 \(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
4 | l- N5 T9 F6 f2 n2 p # 确定每个 GIF 的持续时间(以秒为单位)
3 Q) s" X: d% N4 a# o gif_duration = min(duration_per_gif, video_duration / num_gifs)
/ |8 I$ F) {* @# M # 生成随机时间点
! ^8 u' G! d( C5 j2 X; ? random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])( v# d5 y7 E9 C- x(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
+ O* ^9 ~: c# E+ W N video_clip = VideoFileClip(video_path)
/ k) W0 i# W" `- X _9 R; m' H # 为每个时间节点生成 GIF 图片
8 D9 w: m% Q( e! g$ k for i, t in enumerate(random_times):" n- v3 R2 e7 N5 ~) y(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
, t7 }4 U u( P. d; N4 T clip = video_clip.subclip(t, t + gif_duration)
9 n7 G [6 ]) O" s7 v/ G # 调整 GIF 图片大小
; C( I: P$ K6 J9 @: m, V5 T2 [ resized_clip = clip.resize((target_width, target_height))1 S& s: n1 ~+ E(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径7 I( C, s) y+ ?(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")% ^% F, \' _) d1 P. Q9 d, [(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
9 z+ W& ]+ n' ^ [* Z7 r! T5 k* q print(f"正在处理第 {i + 1} 张图片")
$ [9 R' m7 l/ [ \) S H # 写入 GIF 文件) X% S8 o, g: G/ c5 z o5 ]& D(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")* N2 E4 d+ k F/ _$ Z(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
i- }+ h4 z# B- P video_clip.close()
* c% r% s4 x; ^- S% u
% a* C; B' H6 X, s: \ x p, Y0 w! u+ m: `, S/ ?1 V" B(欢迎访问老王论坛:laowang.vip)
" }. ]. _" @* X* ]% T* U3 k(欢迎访问老王论坛:laowang.vip)
1 u2 g8 O9 \! v. O4 B/ J! t' V/ x- B% u1 n9 @ f(欢迎访问老王论坛:laowang.vip)
?( B$ S. u; P- F7 x(欢迎访问老王论坛:laowang.vip)
- C l4 P0 z( u; p0 G5 M: \* O1 |+ v(欢迎访问老王论坛:laowang.vip)
|
|