|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
" @) {- p D4 G) l9 n7 H# Z9 G(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
* f+ u- S! _( C* D+ L2 J) Y& E! \下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你9 |6 R8 J/ h7 q(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
! ]" z' v) D: q& v3 b # 创建输出文件夹; P7 n9 p& b7 p8 e' |% M2 W4 s(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)
4 _" K3 p9 J0 x. @6 r* v9 v # 打开视频文件
# v7 S" k/ B4 f; c video_clip = VideoFileClip(video_path)
, b$ E0 b; | E; f # 获取视频的持续时间" g: L5 R& P! l3 \(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration1 ?) O6 s+ r g) L(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
! f: N1 m D$ v E/ Z& c gif_duration = min(duration_per_gif, video_duration / num_gifs)# P2 A# U$ S' s& c- Q: W" w(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
7 l& `+ T& Q+ H2 D: V random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
0 h4 d7 Y4 T5 L$ e # 在循环外加载视频文件2 Z3 e- Z3 F: w/ r$ \* S! P(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
6 S: [3 v9 _* s0 O8 g6 o; n# Y( |& y6 { # 为每个时间节点生成 GIF 图片
" N2 j5 W/ y( y; |$ M: w. C3 v. l for i, t in enumerate(random_times):2 s& d: r( I' V, c; s(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
: r8 S. ?; X* \8 s$ U/ ?7 k clip = video_clip.subclip(t, t + gif_duration)
' @6 h7 R, _+ y+ ^) n5 i6 u4 w # 调整 GIF 图片大小
- H/ d$ X9 a& u' n$ ? resized_clip = clip.resize((target_width, target_height)): f/ T$ K- c% x/ Z(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
, I8 ^/ l6 W" V e! _4 F; a gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")5 T; o8 o1 \9 r' W" Q(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
# h6 ^) p$ a9 y0 @/ W, x print(f"正在处理第 {i + 1} 张图片")) E/ P D9 _; e. }( f(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
0 u' M, h0 a" Z+ f# A4 x resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
% i2 {) @4 `8 F, }8 z) N # 关闭视频文件
! G0 N3 N: d, |5 u- g6 a video_clip.close()/ m$ N& @% c4 S% y$ h9 ?' q/ J' d(欢迎访问老王论坛:laowang.vip)
) w0 h6 `1 C! r- s) F' W4 X7 H# R2 V) o(欢迎访问老王论坛:laowang.vip)
( P( Z; C4 J( ~$ b4 b% G4 d0 C: j7 {9 x; u(欢迎访问老王论坛:laowang.vip)
, w- L/ c7 I/ L- X/ s(欢迎访问老王论坛:laowang.vip)
$ D+ C+ B/ m) H& X9 d
, \& R, Q* D3 N7 i) z3 j% C4 S1 s |
|