|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
y2 G& J$ h0 F9 Y) P(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
9 t$ y) W9 M( d* r# U; U下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
/ T9 d; ?4 J, Q# }" e2 xdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
4 l) I l$ P9 t4 A # 创建输出文件夹
0 g' f& N! B* O3 c: i3 j: G/ b os.makedirs(output_folder, exist_ok=True)- _, Q: _1 o7 ]/ c) @* B( a(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
w7 p# M& c% V4 q( i video_clip = VideoFileClip(video_path)
* }% X) _$ D/ X6 i% U # 获取视频的持续时间2 G$ D# ?9 w. E6 k2 @7 u& E(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
, U' Z" \( q& {) \ # 确定每个 GIF 的持续时间(以秒为单位)
5 e0 F5 y& K! G" H, G; b gif_duration = min(duration_per_gif, video_duration / num_gifs)7 n1 [: v" y8 b9 E* f% k1 \( r(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点: u- R" `! p. @" Q! O5 w(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
3 O$ u7 m: I$ ~" n h # 在循环外加载视频文件
1 h ?. z, w+ \7 [/ ^/ a video_clip = VideoFileClip(video_path)
7 [5 Z: o; {: ~, B1 [! Y # 为每个时间节点生成 GIF 图片
) D, ~7 W6 H5 E1 k# E1 p$ g for i, t in enumerate(random_times): |% d" \$ I8 Q(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
1 f% A! O% t0 X, {+ k9 Q5 j1 Z clip = video_clip.subclip(t, t + gif_duration)
; o9 G5 Z9 i. E) b0 F+ a q. @ # 调整 GIF 图片大小
. n0 \ M5 N4 F resized_clip = clip.resize((target_width, target_height))/ o6 u0 {6 @" T# F$ `1 i! _+ Y4 \(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
3 V9 z& z+ \$ d" k3 | gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
; L3 B) c2 m% \2 u$ o. ~ # 输出处理信息0 Z4 W' k( I9 m(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")9 |. A5 N! T3 |/ l(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
& Y0 s k! ~/ A3 U; z. n8 `; v+ H* d resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
5 c, x: h* J7 W/ m # 关闭视频文件
5 s7 P# Q8 @) U0 p, x video_clip.close()7 b, l* M& c4 h' b# N(欢迎访问老王论坛:laowang.vip)
$ L/ ^, [/ r; ^ B s, P, K(欢迎访问老王论坛:laowang.vip)
$ o1 |+ P" O) M0 I3 P% L: m. t
% I0 W' A7 ?7 ~: s1 h# E3 w( K. [1 x# {, ^. H. a+ I(欢迎访问老王论坛:laowang.vip)
! T2 h' l9 h) x. v2 c(欢迎访问老王论坛:laowang.vip)
' b A( a: v$ o+ s0 y) V$ Y9 E+ _/ m+ ~* |' ^(欢迎访问老王论坛:laowang.vip)
|
|