|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
/ d' _: V& N7 @1 u; w(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
- o- ]7 w" @1 t4 j9 J* | a下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
6 Y% S# l# B: l: H* Ddef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
) ?; q& E2 t- w% s' p) _; n # 创建输出文件夹
0 Q2 a' ?- F* V' o os.makedirs(output_folder, exist_ok=True)
, m! F" D& t* c" ^; i+ L$ G& u9 ~+ j # 打开视频文件
& b! W5 T# k) {& z* R. m% q video_clip = VideoFileClip(video_path)
* s7 f: C3 }3 a ^! v8 [ # 获取视频的持续时间- y0 V. N# q* d" e. ](欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
- d% j2 k+ o9 z* C' R- j1 B3 V- }: H # 确定每个 GIF 的持续时间(以秒为单位)" M1 j2 ?6 @% Q8 W(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
6 n' @7 i4 K. \- |7 f* x # 生成随机时间点
+ n0 ^+ P+ l+ R* d6 X3 i7 W random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
* o. A% a7 g% q8 F9 C5 { # 在循环外加载视频文件
- C, `7 k. [6 Z+ u( r video_clip = VideoFileClip(video_path)6 c0 o& N8 C3 j% j5 F/ r(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片9 S0 I2 G! [- P(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
4 F0 o0 P* Y3 d+ X. H # 提取剪辑3 l2 w, k! ]' c/ M+ I) Q(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)2 y. ^& n8 e, E( f2 z8 j( i(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小: R( E# Z) J/ ^/ Z; A(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
@" q P ?# Z" ? # 生成 GIF 文件的路径
, V& t% f( v: Y" e gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")) `- x" n A# j! ^1 U4 F(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
) u6 V1 m2 D9 M* y! P0 j1 T print(f"正在处理第 {i + 1} 张图片")8 S2 T" N T$ u* d3 T3 p' x(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
) p2 q# z( H9 U0 e& i+ w. i* r' e, T( o resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
+ `; j+ q$ d6 o8 T: `1 I # 关闭视频文件
4 T, M; {/ Y, M' b video_clip.close()8 r2 `# O! h, Q! E0 j9 r1 E$ d(欢迎访问老王论坛:laowang.vip)
8 ?* h% S$ k `; |(欢迎访问老王论坛:laowang.vip)
* s8 n5 P4 D$ ^2 F( f/ N0 _3 ]% e4 d3 p* j$ ` ~# O, k7 J8 Y(欢迎访问老王论坛:laowang.vip)
" T, x' d- F- m' d- m9 z& p
: |1 |2 f% |3 F/ f( {; J( e; d# K5 l3 O1 y& Y& G) S( w7 r(欢迎访问老王论坛:laowang.vip)
3 w9 _2 |7 ~; }6 a. t(欢迎访问老王论坛:laowang.vip)
|
|