|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
6 M+ [& i: r8 D |, w; C用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif( f j) w( y# z7 E5 n: C(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你/ s5 g- U4 D! w |" ~: u1 v(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
, J/ l7 \' P2 p4 x. i2 }. v2 \ # 创建输出文件夹' n1 |. ~+ d5 l; _1 Q(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)" E& K5 Z( d, B2 q1 Y0 i4 l(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
/ ^8 @5 [8 ] E# K$ o( g video_clip = VideoFileClip(video_path)
. J* `& A* Y4 S6 N # 获取视频的持续时间
% [* S1 f/ C$ n& `: }* x video_duration = video_clip.duration
: c$ x" ?) t. V! W! Q2 b& B% Y w # 确定每个 GIF 的持续时间(以秒为单位)+ b' k0 J1 K) d6 G* I(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
! i, r9 y2 j( m$ ]! ? o# b& G # 生成随机时间点0 r) z' \0 ^# b0 z! {: {1 m(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
$ O* ]' l7 o6 @; T # 在循环外加载视频文件
, a% R6 d9 M1 k4 J video_clip = VideoFileClip(video_path)9 n4 |' V- y ], C. V x, o(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片+ E8 q- T" p) A; E" a* r8 N(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
5 F. m: R7 j7 `; ~; u( F # 提取剪辑8 p8 R S: Y9 I9 H(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)1 f9 I3 U- s% Y(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
4 y1 @9 a: k1 q4 `- p5 @ resized_clip = clip.resize((target_width, target_height))" q' \4 [" V7 s(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
% @3 y( T& A$ c, G gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
5 q( G" f4 E4 a# h # 输出处理信息
; ?2 O4 O) K5 E1 r( v print(f"正在处理第 {i + 1} 张图片") E( R* T0 O9 ~1 P9 b/ @(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
7 ?! e* y, l9 m resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
! Z9 L, E% h7 T4 ?% \0 N% \ # 关闭视频文件
) K2 b. O! f" Q) u video_clip.close()
$ ~3 {1 J2 r% t8 k
, D! _0 ?7 b9 L7 U( Y8 U9 v8 L9 L2 ? B(欢迎访问老王论坛:laowang.vip)
! V' j8 S; R7 h8 t
; R) K% k% w8 Y( e1 f8 ?
: i h2 \: M, H5 z0 c5 B) ]. E( c8 ~( F5 p1 A+ n# g(欢迎访问老王论坛:laowang.vip)
( O1 Y* a2 h+ l(欢迎访问老王论坛:laowang.vip)
|
|