|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
4 {/ M7 B% h$ B% o/ X(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
- ~! [0 x7 ~+ h* [* M( s下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
% x }+ c5 k$ U+ V8 E3 x, ?def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
2 v4 c4 L3 S$ l # 创建输出文件夹
2 Y ]# }8 t& F/ Z2 a0 D os.makedirs(output_folder, exist_ok=True)
, q; L/ ~3 b" H X7 j # 打开视频文件
$ O, n7 a4 U# ~7 y- L3 n video_clip = VideoFileClip(video_path)
8 w- l' N, \# b7 [% m, Z # 获取视频的持续时间
3 F$ k) l! H% v( K3 i video_duration = video_clip.duration0 P2 o" U7 R& G0 z(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
5 v' T5 ?$ z# E1 }0 h( \ gif_duration = min(duration_per_gif, video_duration / num_gifs)
! }, R) v+ s. T* F0 ^+ p # 生成随机时间点
: w* n9 [ j. e) H% @6 E random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
$ O/ m- u8 p1 [ # 在循环外加载视频文件. ?% x" C; [) [% m(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)) A) }* J8 r. v" k y, ~9 o2 W(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片- c! X% y2 \/ v0 X(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
K) `5 a" O6 z0 |4 }" r # 提取剪辑, @# Q: B% }# E3 c(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)5 h0 Y# V) b$ A6 ?2 o: m/ l6 |(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小6 J" s. B: r9 D(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
; i% b/ G @6 Z$ W # 生成 GIF 文件的路径
2 v. t1 l2 d) A" ~. W gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif"), _# d( q# e# \4 j; J$ c(欢迎访问老王论坛:laowang.vip)
# 输出处理信息( C. |! y; K8 |( p4 O0 A" p( Z(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")" q: \# N2 ]2 E% h+ P(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件6 R, v" k T/ K, e# X1 `! @(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")! q& q) ~; B& h) w7 j(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件2 m1 w, Y. e$ @! h" N4 y5 }) f(欢迎访问老王论坛:laowang.vip)
video_clip.close()
/ n! v1 u, E1 P; ~! H; ?/ C
0 U( R; g" M1 `' ?' H. T' h6 t, r: Q1 h* w(欢迎访问老王论坛:laowang.vip)
/ j1 P' ~2 Q" j) M4 E Z; a/ |" B j(欢迎访问老王论坛:laowang.vip)
& q( A' V" F6 Z, k4 m(欢迎访问老王论坛:laowang.vip)
' W/ Z6 n1 @; c4 i) E# f* v X8 ^2 ~+ q) | x% b! m; Z(欢迎访问老王论坛:laowang.vip)
|
|