|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
" o3 N' S4 @$ m. L d(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif6 e4 T. }5 f; I$ C(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你3 G# C5 v- g# k8 }( Q! d% K(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
2 L t) f( F" e, S) L' v. K # 创建输出文件夹1 p; B) U! E) Z$ A3 {/ G(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)
0 V1 q2 m! v" g r5 }3 x" t5 | # 打开视频文件/ _5 `- h6 l4 v. R' Z(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
5 r6 X8 k. B. Y# E$ N7 c1 U # 获取视频的持续时间. P f" A m2 p% A6 D(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
5 ]/ ]# g1 @! _6 H # 确定每个 GIF 的持续时间(以秒为单位)1 }7 E4 L0 H! j+ H2 ^9 S. ~5 n(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
/ }+ \ p6 R5 j2 C' o # 生成随机时间点8 F m" @$ r6 \' X% w4 f$ r(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
/ Q5 ]& ]+ X3 E9 q # 在循环外加载视频文件7 {- Q; d) }( ^ r4 S(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
( b: m l: [# t( F) T* X7 }$ q. y # 为每个时间节点生成 GIF 图片. v. \2 ?% Q6 H; m(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):3 I' @. T: P# y7 d" ?9 n, j6 K$ n(欢迎访问老王论坛:laowang.vip)
# 提取剪辑1 x. v/ v7 j. w( x, ~; y2 Q+ M; U+ m8 h(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
/ T9 d" k7 Z$ _! g% X # 调整 GIF 图片大小
/ }3 }* E, J$ w' t7 n resized_clip = clip.resize((target_width, target_height))
$ E( I* F, ] e1 @0 K* A9 W$ A # 生成 GIF 文件的路径, O1 t8 t+ G/ g- l+ O: p# e% B6 A(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")- X9 D$ t1 u: [3 |(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
, p6 j8 M, E7 o3 R! Y7 t print(f"正在处理第 {i + 1} 张图片")
+ g; o6 f! {& G% L4 Q7 B # 写入 GIF 文件
# \5 R) g* w" {3 V: x& j! y4 Z resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
* l" ~' a1 v" u* _( Q6 k; I% \ # 关闭视频文件
3 x9 \! M. G, x video_clip.close()
& ]1 X% [& G! f+ v$ `+ N/ D% G! \ ]. i( d5 y(欢迎访问老王论坛:laowang.vip)
; R% y& ?+ b0 B% W0 Y9 c H9 i% |6 o% u: w" H; |(欢迎访问老王论坛:laowang.vip)
) h4 y k/ C$ E9 a$ Z& Y+ E$ J, W# C- l(欢迎访问老王论坛:laowang.vip)
]" b2 _; F% @% j N. I6 H(欢迎访问老王论坛:laowang.vip)
5 w. z4 N/ {; b+ e, h* F; U(欢迎访问老王论坛:laowang.vip)
|
|