|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
L+ v, w3 V# O1 x5 L3 Y2 l' F用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
7 u5 r! v# ]! \7 m# M' s8 H下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你. d$ J! E+ u6 T7 O+ m I y(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):! Z/ V& @! c$ j; d) S' h(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹" @* ]4 L6 r/ Y8 T1 U: }2 b, n(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)
6 w& J# s+ {: n9 P$ T # 打开视频文件
7 [/ c& Z7 A0 o7 ~) d" @1 g } video_clip = VideoFileClip(video_path)
6 N+ X, K6 }# g # 获取视频的持续时间( a0 o# G( B5 b: v2 {" W7 w/ r(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration; e; G$ K7 u6 a8 _7 a1 R! X(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
: V/ t* p' i- U% E8 b4 [ gif_duration = min(duration_per_gif, video_duration / num_gifs); k) }2 Z1 @& `! ^. q7 \(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点) |1 v! g- d' g) d, [. R(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
; A9 p& b( k; {; J # 在循环外加载视频文件3 ?5 a% m, d! C# y8 |! k(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
, n' H- F3 d8 n% O8 R # 为每个时间节点生成 GIF 图片
2 K' j! A! T. l# y2 g for i, t in enumerate(random_times):3 {; @1 {* ~- y(欢迎访问老王论坛:laowang.vip)
# 提取剪辑1 A. A( R. g" J" B0 Y! S(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)* H8 k* f- @2 S* C- ]4 f, e+ ^(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
2 r7 s( C! o+ G, n/ b l9 \" [ resized_clip = clip.resize((target_width, target_height))
: Z& Q% t* Q+ p # 生成 GIF 文件的路径) J' Q; Q' z6 y+ I. ^5 Q9 c( |(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif"): G9 Q. M2 A9 `, U(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
9 J4 u+ H0 z+ U print(f"正在处理第 {i + 1} 张图片")
5 s X/ {* u- P* P( ] # 写入 GIF 文件
/ ^, D6 r9 e8 H3 i2 H resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
% ~7 x& `% Q$ L6 W, \ # 关闭视频文件8 e' f$ O7 E t2 N: t) i(欢迎访问老王论坛:laowang.vip)
video_clip.close()
& r4 j8 x2 a! @; D) E7 c; j) ^ \& o" t* Y9 A(欢迎访问老王论坛:laowang.vip)
1 r" w D5 Y6 v- A- L# _5 K" l9 M5 y5 [8 E2 A: D3 u3 V5 ](欢迎访问老王论坛:laowang.vip)
% m" [8 z `9 u(欢迎访问老王论坛:laowang.vip)
5 u2 t7 B7 i: T, f/ J0 u
* s9 O) S2 U( H1 _. H+ F+ W
2 ~) s: i* \7 I" X4 j |
|