|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
/ }3 e" O4 j1 f" O' J* t8 h(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif% y5 E, [. K) ]+ V) z' p/ E(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
% z; L' s- I) v$ j8 f0 s7 l+ r' f4 d4 odef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):. v _# Y" F5 a' j(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹' a7 O3 W w- T(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)# K5 R/ |# }, N: Y( u+ W! I(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
' e1 [$ v7 i- R/ ? video_clip = VideoFileClip(video_path)
. o2 w+ r4 L# R2 U& R \( a # 获取视频的持续时间
. u1 G2 s0 ~& O3 x$ v video_duration = video_clip.duration
: {7 }0 @8 y! y6 b9 s; d9 w # 确定每个 GIF 的持续时间(以秒为单位)2 h F' |! M; r/ @" ?/ ^5 b7 k# g(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)! O3 f8 {5 e- N2 C/ g(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
$ R, H: t c* W4 T random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])* i4 w# o, M) `- z, @, t; N3 l4 V(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
1 I9 _+ f8 H' D2 V' J video_clip = VideoFileClip(video_path)
$ s. T d1 d) w9 ? # 为每个时间节点生成 GIF 图片
6 h5 ?2 x+ j8 Q( @0 E for i, t in enumerate(random_times):
5 ^3 v% J% a# C2 _. W% | # 提取剪辑
+ L1 y) a% n d; C* |" B1 j clip = video_clip.subclip(t, t + gif_duration)
' I6 C( h, C4 K6 Y- P: _ # 调整 GIF 图片大小
1 O4 e* f- n# O/ q; A4 n5 n$ j" {+ V5 q resized_clip = clip.resize((target_width, target_height))4 U# r# u/ [! }2 o) Y(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径 w$ x* q6 J- B( d4 c(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
! u+ W6 A3 g, b1 j # 输出处理信息
3 r& Y, p' _. y! D print(f"正在处理第 {i + 1} 张图片")
4 {; N% [9 h0 p; x$ g% G # 写入 GIF 文件
1 N9 A& t7 B7 {* X% L resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
* r4 U& Y) j8 G' s# b- i9 ^/ s # 关闭视频文件 `6 M% o/ F, Y3 G5 d(欢迎访问老王论坛:laowang.vip)
video_clip.close()
b* n8 @' C7 Y" @1 G
& l/ g/ z F# L4 j0 m$ L1 w* d6 _8 z. ^(欢迎访问老王论坛:laowang.vip)
) b, I9 F, s, _6 D) f$ C(欢迎访问老王论坛:laowang.vip)
* F3 r& Z6 a5 [, v) k r l(欢迎访问老王论坛:laowang.vip)
* m" z* ?6 ]: }) ?
q# `/ D4 n- t% t2 S+ F# u: w8 i+ ] r1 b2 t& c(欢迎访问老王论坛:laowang.vip)
|
|