|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
0 U. h* z( |* p/ V6 X(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif W7 b4 K0 Q; c(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你# K# z4 ^8 A7 Q( o& E4 C: I(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540): T, v% V% t" y. q(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹
2 V: t, r6 }, x+ C3 D, h os.makedirs(output_folder, exist_ok=True)
$ C3 L4 F* n- a6 {9 Z; w # 打开视频文件
$ h0 p9 I' f# U, L/ T2 P) E! z9 w, E# Y video_clip = VideoFileClip(video_path)
% T2 y$ n# M" I/ ~ # 获取视频的持续时间
5 Q% {0 ~# f! O! p( u: T8 b+ @ video_duration = video_clip.duration
. t1 q3 W. }: s" Y. A5 ]; l # 确定每个 GIF 的持续时间(以秒为单位)
' L4 e$ O; p9 j) p* w8 h0 F, u6 t$ d gif_duration = min(duration_per_gif, video_duration / num_gifs)9 \0 t& ^, o! {/ O, ~0 ~(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
! S9 T k$ }# d ? random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
/ L( z4 N: [) p. e. u' y # 在循环外加载视频文件& U x! ^3 ^( \$ @(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
. s8 U: d6 A: B. R # 为每个时间节点生成 GIF 图片" q. y& }" F s9 |) K(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
1 d7 Y6 s# N9 \* @ # 提取剪辑
. t+ ~6 Q& Y4 H j1 F, |! Z$ u# Y# b clip = video_clip.subclip(t, t + gif_duration)$ | w- I9 I( z(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小6 u* ^/ D$ }2 s Z+ K: A(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
2 x) l, D5 B' j # 生成 GIF 文件的路径" Z! Y5 y5 X3 [4 x6 S' n(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")( t$ w" r8 K F( p3 w(欢迎访问老王论坛:laowang.vip)
# 输出处理信息 T% ]( j6 k& g* R(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")
. a- C y$ D( L1 a6 F3 p# k( t$ p8 Q # 写入 GIF 文件5 H; ~0 p9 [4 M9 n2 i(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
. v& F; d6 ~* j1 \4 \) l # 关闭视频文件& K& W# p( Z* a6 J1 ?2 x(欢迎访问老王论坛:laowang.vip)
video_clip.close()
& Y9 P8 ~2 w& ~: n4 ^
$ q% ~) a, T0 \4 h2 f6 ^- Z, [- A* S2 |8 p0 l4 U* o( ^3 D# A(欢迎访问老王论坛:laowang.vip)
! @, p% h( q3 J0 g( G
; k6 v+ r: C3 v9 w* m0 ~" k, `8 [" {5 @: G7 b: A(欢迎访问老王论坛:laowang.vip)
4 K! _" {$ p5 N2 Z(欢迎访问老王论坛:laowang.vip)
& P' G0 Z: D2 t1 b1 }(欢迎访问老王论坛:laowang.vip)
|
|