|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
% U7 b! j k; s2 c用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
3 O( e& K) r* I* J3 P下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
; [2 a: L/ a/ P+ s" i) M, V6 N& Tdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
, t0 S; t8 o7 j1 { # 创建输出文件夹
6 j3 M7 a# P9 o os.makedirs(output_folder, exist_ok=True)* i/ Q8 }) _, T7 ^9 D(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
6 }2 F1 g2 }( T/ v+ u B; ^* a video_clip = VideoFileClip(video_path)/ P% C! A* ~6 Z(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
* r9 x% K+ r( L5 i/ L% Y* W video_duration = video_clip.duration4 x9 o d5 a* s6 a8 T6 D(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
( ~3 d2 K* x5 a9 {9 M* v3 U7 m gif_duration = min(duration_per_gif, video_duration / num_gifs)
) d# J' \7 w" \% K/ N # 生成随机时间点+ k& y1 X8 l/ a E# s(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])6 U/ A8 G5 f( Z, A5 g(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件2 t1 w+ a$ q1 A: t(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)0 B( ?6 ~2 _- a5 k+ m& o1 f- _(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片& V+ t9 x; `. m2 y: Q7 f. ]3 x. {(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):$ q; I4 f8 g3 I2 `(欢迎访问老王论坛:laowang.vip)
# 提取剪辑4 h) R p! @/ q; p1 k7 p(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)2 {* z: C, V8 `+ J, S(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小9 _( W8 ~6 c3 C" ^7 v, h6 m: N(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
8 H+ m! C! u& ^# Y. G # 生成 GIF 文件的路径4 P7 g* E! Q7 M9 D7 p9 @# z+ d8 ]4 u8 G(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")1 I/ A, f! k+ H: \(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
' r! v- R& Q, w print(f"正在处理第 {i + 1} 张图片")
: g. k- e5 ^3 a # 写入 GIF 文件
" [( G, V2 D4 v! u& W! ` resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
9 X) ^7 ]" D3 R. f7 | # 关闭视频文件
: K6 J! ^$ N. h, O video_clip.close()
3 m$ r' Q( e7 ]9 G" B$ M
8 F8 j/ n' k }/ ]& S) E9 O' p0 { g+ q) e3 y(欢迎访问老王论坛:laowang.vip)
7 i/ ]4 l) ]. R" ]4 O4 |(欢迎访问老王论坛:laowang.vip)
5 u8 P, h% U% p, b- r/ Y9 }) T(欢迎访问老王论坛:laowang.vip)
* z) a4 F7 A/ |& B* D6 q+ T/ y# y( X' s8 l9 Q/ T6 V(欢迎访问老王论坛:laowang.vip)
( f' x, }( W( g' G" C, S) Z4 {(欢迎访问老王论坛:laowang.vip)
|
|