|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
* b2 d t$ G. T( J/ [用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
: @0 i- D& h" ?! P" Q' E2 c! q0 N, y下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你. M' G5 o$ p2 A9 v; o G(欢迎访问老王论坛:laowang.vip)
def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
j6 }1 l9 _3 b, m+ g # 创建输出文件夹2 M9 i, Z" y7 O# G a! \(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)4 K5 h+ i+ s3 @0 r$ u' W' u6 F(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
6 E; f+ f# S3 z4 n9 G2 _ video_clip = VideoFileClip(video_path)' b" m. j1 a/ J% m( n- X(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
- T7 P6 ^7 V' z) C video_duration = video_clip.duration
0 W8 T( E) x! j% Q+ Y9 a # 确定每个 GIF 的持续时间(以秒为单位)
6 ~9 I+ n5 g/ M. T6 m0 G gif_duration = min(duration_per_gif, video_duration / num_gifs)* u" e6 w6 K% q4 [$ J: ^(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
, [, w; D8 x1 `1 g P random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)]) f+ \( n3 n+ x R8 ]* F) P(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件0 B! B& Z/ P: n9 M* H, G(欢迎访问老王论坛:laowang.vip)
video_clip = VideoFileClip(video_path), Z$ k$ H# j2 [7 N5 a M6 `(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
9 m3 E" S9 ^; s1 v for i, t in enumerate(random_times):
7 t* I; w7 b% p9 H$ n, c/ E0 h2 d # 提取剪辑
& V7 d) t) r! s* B8 g clip = video_clip.subclip(t, t + gif_duration)
# ]5 }8 }& o( B* E" l # 调整 GIF 图片大小
# p6 N, z1 c7 ^, | resized_clip = clip.resize((target_width, target_height))
, Y" \! [! f4 @1 z0 e# j9 k' _: ^ # 生成 GIF 文件的路径: S1 G& A% F1 E1 m(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
" Y4 `! J' a8 d% r # 输出处理信息
$ k! x8 | X% s6 b print(f"正在处理第 {i + 1} 张图片")
; ~! K5 g9 Q% \0 O- Q # 写入 GIF 文件5 U2 y% o; t4 Y(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
3 o( e9 C$ _- T$ j2 w& e9 e # 关闭视频文件; n0 d6 V, [/ C0 F: [(欢迎访问老王论坛:laowang.vip)
video_clip.close()1 Q9 h/ m9 g" w1 N0 E(欢迎访问老王论坛:laowang.vip)
6 n. S' q. W% ^) l
$ U" q$ ?4 E; x1 h6 z3 [9 M8 j3 _! S/ G$ v5 s- O, Z(欢迎访问老王论坛:laowang.vip)
; `, p" ^/ j; `3 G; O5 C(欢迎访问老王论坛:laowang.vip)
$ s6 q: V( a/ b! K- O* {4 `1 K(欢迎访问老王论坛:laowang.vip)
8 H9 g6 T' e* h9 ~" V(欢迎访问老王论坛:laowang.vip)
) s p$ j) _' E" C(欢迎访问老王论坛:laowang.vip)
|
|