|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
% X4 ~6 O" {% |2 M6 X3 Z(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif9 _7 a, }4 v0 v" c(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你6 c4 a7 v5 G" }5 S# G8 u4 D(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
. V8 C" m- U* } # 创建输出文件夹
! Q- R3 X" @2 D* o0 ^: \5 _' m os.makedirs(output_folder, exist_ok=True)
! d! T, @" r8 G* q4 ]- w # 打开视频文件2 T4 N M4 I( ], T- V/ Q* l% H(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
1 j9 N( m% @$ ]3 c4 }3 U # 获取视频的持续时间6 T9 a. F" B8 ](欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
8 Y7 E$ b& t; P/ ^5 }1 \1 m # 确定每个 GIF 的持续时间(以秒为单位)9 r- g1 E1 v- x2 A; x(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
# P8 i" B7 ~4 W% ^1 E, r: D # 生成随机时间点
( w7 P$ W( W& H3 m. c random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)]), n/ r+ j5 L% E(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
" E2 `1 E6 I( [ video_clip = VideoFileClip(video_path)
7 A" r, _# q9 C L # 为每个时间节点生成 GIF 图片5 H1 Y4 m' z/ k W9 e) [- k(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):. V7 _& o; s7 @7 Q ?3 [0 H* z. L(欢迎访问老王论坛:laowang.vip)
# 提取剪辑4 J; A$ y& W0 P: l3 @(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)9 {+ e8 Y+ g* \(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
: h: D" ]5 @/ I$ |* G9 w resized_clip = clip.resize((target_width, target_height))2 c4 J$ L9 n# t/ w(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
8 E0 I$ [5 H, B2 q Y gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
6 s c% H: E$ \) |9 e # 输出处理信息
* ^7 [- v' O; r% u5 v% D9 ?3 Y print(f"正在处理第 {i + 1} 张图片")4 x* X* d/ b- r% `9 y& N J(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件2 A7 h$ } E0 T7 `; |(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
! X, j% i0 Q% M2 n+ S% Y # 关闭视频文件- n/ m3 C4 f' o& j(欢迎访问老王论坛:laowang.vip)
video_clip.close()
t% L, i3 I8 p* p- w: a7 R6 \& O6 S( j5 _(欢迎访问老王论坛:laowang.vip)
9 D0 e8 W7 }2 L1 Q' M. {9 ~, W$ a0 J(欢迎访问老王论坛:laowang.vip)
1 E; E4 i6 w5 H% y9 h/ X(欢迎访问老王论坛:laowang.vip)
% v( e" Z# y- m, J(欢迎访问老王论坛:laowang.vip)
) Z4 {' e6 B* K(欢迎访问老王论坛:laowang.vip)
0 M7 ^8 ~ T; z/ }/ L2 @$ B(欢迎访问老王论坛:laowang.vip)
|
|