|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
+ m. A( u0 P- ^: \" _用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
; g ~+ S# e+ j下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
z5 j O6 K6 Z$ _7 Rdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
- w" N( w$ C& {* o4 S, u7 ^ # 创建输出文件夹4 ~( r0 ?1 c& h1 [1 Z5 W(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)$ ]$ n1 n. C' c, f2 D3 H(欢迎访问老王论坛:laowang.vip)
# 打开视频文件8 M# S V% M* Y7 {/ k+ ~(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)% |, R, A, s4 Z9 `(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间4 ^: ~7 i. W' \1 ~/ \(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration7 n3 O4 j6 x- C' L' M(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)' [2 \+ _. }3 k- h9 V# f(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
. [ q" d' m S% Y& d # 生成随机时间点; C& t% r0 {; p% T9 Y# x(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
2 ?6 L2 L- z2 B- F4 S # 在循环外加载视频文件
) ^' {6 x8 f2 R0 B video_clip = VideoFileClip(video_path)/ o) i7 L2 J# ]- S; [(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
& r; ]" G8 L' A: y% P0 w. e for i, t in enumerate(random_times):
2 ^3 G3 q3 q0 T, N/ a # 提取剪辑$ ]+ ] j/ t3 l, r# e(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
& F* y" @! M- N" {3 Y3 I! S # 调整 GIF 图片大小
/ q4 Y8 O$ L N: w) I+ [ resized_clip = clip.resize((target_width, target_height))
! ~5 w$ b) l% S5 g7 g9 A" U # 生成 GIF 文件的路径2 `7 |% U! j9 b K) Q(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
! Q8 P8 O) Y! F" c1 P& x7 Z# s # 输出处理信息% H3 r2 I- \$ K5 v: F(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")/ f/ T- y, H8 D# i# b(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
' |% P. T e; e7 j2 o resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")8 h' I; d# }- O(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
" P1 N( D ?# D, A/ i0 c3 O video_clip.close()
& [/ l: w8 C, B) k- X
, \* S. E1 m- z- F
7 t7 j4 D. Q/ A. m1 B$ O" H r5 X" G(欢迎访问老王论坛:laowang.vip)
% \+ R$ N/ Y1 x8 Q2 b; n, K+ k# Y- v# T9 a+ x(欢迎访问老王论坛:laowang.vip)
. ?* {+ M3 ?3 }(欢迎访问老王论坛:laowang.vip)
& C) t% R9 W, o1 T: d- W' S |
|