|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
" e) \5 F. X$ u4 t1 b* E# D- v3 ~3 R用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif# f$ C4 _4 Y3 B4 w2 H- r% a' ?! L0 h(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你, ?4 d4 w3 z3 T! p0 Q, @. e+ B(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
/ ?9 _% D5 m6 F1 |9 w # 创建输出文件夹
( P5 m; m2 M W x! a os.makedirs(output_folder, exist_ok=True)
, E$ k' d6 T& z% m- x. m7 \ # 打开视频文件" M& D' C, {' \$ }(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
- u$ a0 r5 U+ F2 o- z # 获取视频的持续时间9 M) R- E7 t+ B9 @) Z(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
K* u I6 h3 W6 V/ O+ [. U! Q # 确定每个 GIF 的持续时间(以秒为单位)
9 f5 B8 S" z' j4 D" q! L gif_duration = min(duration_per_gif, video_duration / num_gifs)
3 R# E& T$ D2 X8 n+ C # 生成随机时间点4 K# V: Q. ?, d+ R4 t$ v+ {(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])7 P/ w _; D$ ]0 Q7 P9 i( ~(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
; P& _9 A/ R5 l; } video_clip = VideoFileClip(video_path)
0 n( M: M& s( A e4 E # 为每个时间节点生成 GIF 图片
: X9 Z- U2 M" F. B1 b" J for i, t in enumerate(random_times):
, t# s; K0 D5 B # 提取剪辑8 W. F/ y, q# D: s& H6 j(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)+ V4 Z# t2 ]- a! M) ]7 k) v: B(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小8 M! i1 F) o+ q3 Z2 _/ N(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))- C+ v% R2 |7 |4 E; t. j4 h% q(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
: t$ [; i* u( y1 x gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
* R' b% g, A. x9 J# w # 输出处理信息5 V. Z: W0 f! s, h5 |(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")# t+ _8 W, `. G* I6 A K: e$ _(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件2 S5 j/ g8 F5 {+ `: Z+ c+ U/ q( r(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
|. p- c( d& N" N # 关闭视频文件
# A# o# A, k: b6 P3 H video_clip.close()) X" N' r. E, M9 e- m/ q7 \(欢迎访问老王论坛:laowang.vip)
" q8 Y# {9 A, X8 ?. g( R
, G3 X* ^4 g% H. [3 [
: n) H. J4 _' U3 _; h0 N& e1 v% j0 F0 y. f7 v3 ?( o$ [6 L(欢迎访问老王论坛:laowang.vip)
- P( ]# E: Z, X5 _! h(欢迎访问老王论坛:laowang.vip)
: q. i" s8 ?( ~/ A, t# B" E9 n0 ^+ u3 @( A* X! A. L(欢迎访问老王论坛:laowang.vip)
|
|