|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
9 T, O i/ q5 @9 r, D(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
$ D" \4 \$ X, A& r3 D下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你) d5 I1 m( {& O" t; W% y1 S& 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):
$ ]& N7 Z0 g& {( k # 创建输出文件夹
8 Z& W8 H9 K4 |& j* a+ `/ m A os.makedirs(output_folder, exist_ok=True)
* j& p0 V, ~0 p4 Y5 B+ U' o # 打开视频文件: e( e( w, I% r' Y2 A(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)# ?' ?% m5 r) w8 _3 R* J(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间" }6 }- G9 V1 H1 g+ }' u(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
9 B0 L2 c* t% q # 确定每个 GIF 的持续时间(以秒为单位)) C& \& t1 e; d8 D& f(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
% ` V( r" k D3 s4 R # 生成随机时间点
; u5 }3 H1 E, I) ?( \: Y% D random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
3 [. ]+ y; E2 V& U3 Z- }! b7 h2 ~ # 在循环外加载视频文件
) u# p1 y! z& F9 m$ }/ o, Z video_clip = VideoFileClip(video_path)+ x4 P3 M* E% e( n9 y! X9 M4 V j* ~& v(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
4 w1 Q8 ^6 Q: A- Q# p" s for i, t in enumerate(random_times):
% b M& q C7 e* c4 k # 提取剪辑" q! ^; v+ t: X2 N8 q(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)0 k% v) b1 P; n# J; h4 {% k(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
( B5 `0 G5 z$ S% d resized_clip = clip.resize((target_width, target_height))
0 A J' r4 K1 [) J" ?: s # 生成 GIF 文件的路径
: G/ \; \% F7 T8 Q/ d2 u gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")' @, |$ K. [8 L! ~# [6 K4 ^, \(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
5 Z7 p9 I7 I9 |3 d% ~ d print(f"正在处理第 {i + 1} 张图片"): f9 B5 L6 X2 D, l(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件: J+ U5 q- B5 [* v$ ?+ \( s* ^6 ](欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
' h4 _* X+ } V$ ~ # 关闭视频文件
: F; B6 F+ \0 c% h" l! A video_clip.close()
* r5 x; h! K8 @5 y; o# r4 F/ z& a: @% D7 D( i2 s n(欢迎访问老王论坛:laowang.vip)
1 Z: D6 {9 D6 O
1 E+ i! R- x, r' ~- W9 L' r
% S2 c8 U6 A( A+ G5 n" g* K4 @/ U% _) J2 k& T" z(欢迎访问老王论坛:laowang.vip)
' k( ~$ r, K0 D; j; {5 m(欢迎访问老王论坛:laowang.vip)
( w- V3 O+ w; R K/ B/ D |
|