|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
- ^( }4 F, r7 @; ~6 ^(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif7 p) x* e+ g% B0 c/ j(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你: [2 s( c" A4 k; H9 Q. s(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):6 f" d( H3 I, B+ g% X5 s(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹
" A4 m6 `$ E8 y( x. s: z* K( V- A os.makedirs(output_folder, exist_ok=True)
8 N( y3 a9 w( a # 打开视频文件
$ s" W% A5 a0 E& A$ V6 T) l video_clip = VideoFileClip(video_path)# `$ h: n% d- r" @' X( F(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
9 j7 _. {; y8 N3 N4 |' G video_duration = video_clip.duration/ t, H5 Q: U+ y1 P/ o7 D(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
3 u+ b! d0 ?* b; R gif_duration = min(duration_per_gif, video_duration / num_gifs)5 W# P% v, @ k2 A(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点) P2 e7 G- M, z7 q- R* i; E(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])/ q, W! h8 `3 \5 J(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件: b1 [2 M2 O) V) e# S: D6 [! u) e(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)6 k7 z! l) Y' E3 T9 `(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
& L* s& Z5 B( B# _7 Y6 ~ for i, t in enumerate(random_times):- P, v F ^, d(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
" o6 Z6 c! s1 ^, X: ]0 F; B clip = video_clip.subclip(t, t + gif_duration) g6 \# V% @+ O) e1 b(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小% ?2 y* r1 z3 f0 Q# d8 i; e% G(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))1 g3 h* Q6 A$ e(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
- z5 Z7 M% z/ w! f8 ?. N' J( Z: j gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")0 R$ L% e6 x6 m# b9 z" V; k(欢迎访问老王论坛:laowang.vip)
# 输出处理信息% m/ _6 M" e$ {7 K3 Z, x(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片") }9 b Y2 l* N8 \1 u4 u(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
# \. Y- f3 m1 w; Q resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")' [# K) H! r4 A) B2 Z(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
; f0 ]+ f- ^0 F+ z# H6 Q video_clip.close()
/ x! }2 Z* E# _: S* k
' X) L; G2 R4 d2 M6 k! G, X$ Z: h* u5 q0 z: m6 V9 {(欢迎访问老王论坛:laowang.vip)
( g- a7 \7 i9 P E8 s: i(欢迎访问老王论坛:laowang.vip)
. u; j% J$ _5 W; A
: Z; ?) E; r4 \- _* r! o4 {' q6 X. b/ {' {(欢迎访问老王论坛:laowang.vip)
) p+ z+ B6 o. a1 x. O(欢迎访问老王论坛:laowang.vip)
|
|