|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
5 \4 z. V1 M3 J* v2 n, s5 Y' g用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif2 f( c4 h0 ^8 G9 ^(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
1 V* l! O( s/ C2 f9 t4 r9 I0 tdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
7 S! o4 s$ r) b5 u6 H# M0 _ # 创建输出文件夹
, D1 K+ k. T2 r- y8 ~ os.makedirs(output_folder, exist_ok=True)
) C9 ]3 s, x+ A- H/ Q # 打开视频文件1 m5 _0 f. u, q" p6 v( k) _, Y. j(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
; u D* ^0 G- @' n/ Z # 获取视频的持续时间
, _& i9 x& P! a/ S* u video_duration = video_clip.duration
b% |6 }0 k/ X # 确定每个 GIF 的持续时间(以秒为单位)
( Q! h. f: N. J( q; K3 ^- Z gif_duration = min(duration_per_gif, video_duration / num_gifs)9 E+ i, k, u% c( I(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点2 ] T/ {% G. Y- J; ?(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])6 \% B: `4 \3 d1 o6 J* o9 y' u) ~. ?(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件/ ~2 ~2 q3 V! y8 B) I3 K" \(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)6 o. M! T" ]8 X+ |1 H% H(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片: Q: w4 s. P- w6 y# ]! m(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
/ V6 S: [' |* B/ g$ F# n3 f" N* I # 提取剪辑8 q# k5 i% ~% G3 I- V(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
' y0 b) o9 D( Z # 调整 GIF 图片大小
$ W2 n/ ?: i" o4 {3 r% Y; ^2 f( { resized_clip = clip.resize((target_width, target_height))
- s( n. e% O6 o& ~0 `2 R" @8 h; D # 生成 GIF 文件的路径, T0 X) F2 T1 B+ }9 z(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
9 K( C9 |, ^! G # 输出处理信息$ x4 S- `; \* a(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")
# ?" W3 d5 L+ G6 h8 {0 T # 写入 GIF 文件
9 }& S0 U2 O" e9 w2 n, u" g resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")- C' b S4 I$ p) d(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
! c* B, a$ Y5 O" P0 n video_clip.close()
+ s4 z9 H3 r& o3 |, r: D
- z- {! L; B/ H- N0 z, B4 ]. p8 v# V$ B( O7 H! e(欢迎访问老王论坛:laowang.vip)
' }. Z" s/ s" N! e* D( t! ](欢迎访问老王论坛:laowang.vip)
% G+ ?6 n R! N9 F(欢迎访问老王论坛:laowang.vip)
& q+ W6 R* [" \" ?- P/ X/ ^2 W. \' X: v/ K3 W. K(欢迎访问老王论坛:laowang.vip)
& {& v8 T! n: C6 E5 T(欢迎访问老王论坛:laowang.vip)
|
|