|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
+ v( g! G; _. @1 W1 l5 h用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif4 E# r4 K6 n2 A' M. b4 p1 a(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
6 L# b# S2 j# Z9 Kdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
+ C4 x6 G, X! O, z* _( @# ^ # 创建输出文件夹
6 r3 `! m' w$ P. ^8 Q os.makedirs(output_folder, exist_ok=True)) V% E+ |2 P. d7 K& }1 X, \(欢迎访问老王论坛:laowang.vip)
# 打开视频文件- W$ O* e# z7 N+ C8 d(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)" s. z3 D* ]- `1 Z1 j(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间% Q( w7 T+ h& g2 f; {$ z(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
) S7 [( X+ G; S5 { # 确定每个 GIF 的持续时间(以秒为单位)
- n- b* _8 g0 U$ ~ gif_duration = min(duration_per_gif, video_duration / num_gifs)( o# Y( L/ [1 H(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点7 }. x* r' B3 s# R(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
+ v" b' J0 M9 o, B( ]2 j1 p # 在循环外加载视频文件
- U3 L/ A [# D3 I! e0 p; j7 e% L video_clip = VideoFileClip(video_path)" @5 ^+ ?1 S' w0 @(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
" P( J* o" R4 Y1 O8 T! I for i, t in enumerate(random_times):! a/ p1 S6 P4 e(欢迎访问老王论坛:laowang.vip)
# 提取剪辑3 R2 d* z4 ^; U2 o- c(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
0 w | e, \) r/ [. {6 r+ T0 q # 调整 GIF 图片大小5 L9 l+ c7 C# H6 `, q& o(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
9 r6 Z! ] B, w # 生成 GIF 文件的路径: q/ j+ P/ Q- z! S! w7 w(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
4 {0 f1 T; y# I' _; E # 输出处理信息
7 k* C2 c: j! d print(f"正在处理第 {i + 1} 张图片"): |: n, J4 ]- G% q0 [(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
+ l4 t) p2 s2 ?9 s# Z4 n4 B resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")6 x+ m5 O8 n% m/ b5 s% [(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
, G- Q$ I# S5 L) F+ `# x video_clip.close()+ b1 [8 D; L: w(欢迎访问老王论坛:laowang.vip)
. c8 }8 p! b7 z! ?2 @
; X" V6 r" ?) e0 D& F9 X, Z8 u0 M
7 d; d4 p1 t4 B Q& |* w1 P; b
0 \" ?7 l: m* ~
% i a2 T9 h, ?) @
3 f/ z% e; y, s( D/ p# [/ q7 j( W& g6 g& B+ z9 Z; N(欢迎访问老王论坛:laowang.vip)
|
|