|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
5 ?) X |) q# p(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif- Q+ T3 ~3 q2 s. @(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你& v" R( ]& O1 p+ x(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
, G) y* N( a1 w, ~ # 创建输出文件夹
0 g) _0 F) J, z3 r& ~+ u os.makedirs(output_folder, exist_ok=True)
7 {/ _. H, x8 B" G0 L' c5 V # 打开视频文件: |$ Z! H6 n" A(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
0 h7 v4 o+ _; z5 C/ O # 获取视频的持续时间
& h0 N( H& P" W video_duration = video_clip.duration/ n ?7 U4 m! z5 U; ]$ q9 \(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)+ D+ ~& O; H" _' S0 i4 Z(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
7 v4 D$ J, `7 X( t # 生成随机时间点
0 n' z; z. p% W, R* O random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])/ U K. ~8 H. [- o7 C/ l! K(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件* K7 h) F# Q2 @(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path)
7 d& r% |4 I6 O3 l `8 F # 为每个时间节点生成 GIF 图片. a5 u4 e9 V7 N; x. k+ X(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):$ R% D% o" s7 j. d* C(欢迎访问老王论坛:laowang.vip)
# 提取剪辑
4 [% i- _& L; f1 u% a% D clip = video_clip.subclip(t, t + gif_duration)
- n3 M+ G% G. J8 D. G. c% q1 ?: o # 调整 GIF 图片大小
2 X) i/ E+ h2 [2 T; F9 } resized_clip = clip.resize((target_width, target_height))
* G6 W) C1 |/ Q7 ]! O" v # 生成 GIF 文件的路径 U: x* w! T3 d& M(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
" X- p' N0 I5 z& u# E+ J # 输出处理信息1 l* ]3 g. n: X(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")
' J/ Y( d }9 g6 s7 E, | # 写入 GIF 文件
' |. C# h$ k2 \ resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")! `* d6 k d' W4 I(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
0 {, ~+ Y, r- O video_clip.close()
1 L0 S3 F3 \3 o- K6 t& A/ i5 O" |/ H! D6 |4 T2 q(欢迎访问老王论坛:laowang.vip)
7 d# Y' T# d8 Q8 }9 R8 \ F
( P5 e0 o2 J9 o' l1 X& ^4 ~, K! i% g1 w! l(欢迎访问老王论坛:laowang.vip)
! a( s. e* z0 s9 s1 {- C- F) C& N+ Z, x% [4 P6 S- u4 f(欢迎访问老王论坛:laowang.vip)
8 h! Y8 R# y3 L5 Z* |" R& o) e |
|