|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
' Q: W& b3 q% t! H4 R7 V0 q) B(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
5 E( U( i3 [2 e4 T3 _下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你8 i$ I) U4 U9 W$ }/ r& _& q(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
* @: E2 k, R( Z. U1 p9 q3 T # 创建输出文件夹
% T& l* o0 `8 }& b, f os.makedirs(output_folder, exist_ok=True)
2 ` R, b) N3 |9 v- ^. ` # 打开视频文件
. e. `. U0 q( c7 Y8 U. i video_clip = VideoFileClip(video_path)
; J: }3 Y: ], O # 获取视频的持续时间
# C% H+ ]- T4 e. J$ X video_duration = video_clip.duration" j" L3 M5 A) h, }(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)) G! O, {5 W9 w% e) b- P, Q(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)6 }- D8 G0 T( p(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
( k# I9 S2 [! P* p. R& O7 ] random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
5 |) Y" e _5 \ # 在循环外加载视频文件3 B' M! i. x: l2 g(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
/ |' j$ H5 v z0 T # 为每个时间节点生成 GIF 图片
* I) W( d% r' ~; S for i, t in enumerate(random_times):
9 b8 ~. s9 u! ~1 K# Y # 提取剪辑
& r3 p0 b' m) J$ z) f$ @ clip = video_clip.subclip(t, t + gif_duration), \ U( h) x1 Q6 T N# i$ K D* S+ `(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
' M. c! X" B8 ?- x0 N+ N {/ o resized_clip = clip.resize((target_width, target_height))7 T; I/ ~5 v' H$ d3 F(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径! B. c2 O% x/ J6 w' }(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
3 N7 w' w- A/ M" K' F # 输出处理信息
( i& g* l n" b6 q print(f"正在处理第 {i + 1} 张图片")
' Z; @$ h: V* r# f, s$ m # 写入 GIF 文件2 u# `. b: x2 z; g5 A1 E(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
* m0 f. o: g( v7 `- r/ x( o; B # 关闭视频文件! Y' P+ ]: ^3 v4 B; l" e(欢迎访问老王论坛:laowang.vip)
video_clip.close()
. f8 H! p/ j+ u
9 i. o" v. n; l# \
* h% W7 r8 z) I8 L# M; b) i1 j1 d! B# ~5 p& j(欢迎访问老王论坛:laowang.vip)
, N, f5 g; v: I7 ~7 q6 ~9 E9 v; W! Q% N, g& o(欢迎访问老王论坛:laowang.vip)
& ]1 t0 `9 u" f" k/ i& {% P7 Y$ K(欢迎访问老王论坛:laowang.vip)
% F; D) T) a! d(欢迎访问老王论坛:laowang.vip)
|
|