|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
8 |4 }4 |! {# T, Z4 m' S(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
$ x/ y# Y( q1 b3 p3 O" _下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你$ k9 u! |* v$ P' @ 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):
& F* ?% a0 F% ~- s, [; Y' K # 创建输出文件夹
; a" ?9 @1 C7 a7 L os.makedirs(output_folder, exist_ok=True)% [7 t9 A% F- F( N, T(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
5 v' N4 L* T* u; X$ v; T video_clip = VideoFileClip(video_path)9 S6 ?3 R) Q- [6 ~* v6 V(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
$ s' s- @/ S! }4 F video_duration = video_clip.duration
# t/ Q5 ~' @+ K. Z, V- o # 确定每个 GIF 的持续时间(以秒为单位)1 C7 {! D9 A# {, z(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
( E6 B4 D1 u7 W1 z/ B # 生成随机时间点; D. ?: H8 V# S4 _(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])8 v5 h5 ^4 l1 G1 v(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
5 o A2 F9 M! N* p/ p video_clip = VideoFileClip(video_path)) o0 ~* ]% B' n1 J(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
7 C& n0 a* d2 t' R5 @ for i, t in enumerate(random_times):
/ @8 W8 L* z, T; K # 提取剪辑4 O+ q% k2 {$ _(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
; j8 Z4 @( d5 ]3 J: e+ D # 调整 GIF 图片大小
5 T$ o- ~7 W' c) @) P' L2 O resized_clip = clip.resize((target_width, target_height))
2 o9 A4 }! [. [9 L3 @ # 生成 GIF 文件的路径& F! ^+ M. t* b# A! x+ r(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")8 G9 w- Q7 x! I, O: I9 g9 v(欢迎访问老王论坛:laowang.vip)
# 输出处理信息) i$ [2 ?, q" S+ i- `(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片"); g- e4 w' W. O% G% Z5 v& l: Q(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件
7 Q: d6 t; l9 L+ {; I resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus") s0 \% V2 Z7 r4 {7 ]6 x. H5 x% ^2 P6 w(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件' h. ~9 N+ _5 T w6 Z0 T1 k& T(欢迎访问老王论坛:laowang.vip)
video_clip.close()' U" }4 ?! P: {% i$ X(欢迎访问老王论坛:laowang.vip)
' y7 V+ Y! p3 O7 [, [ j(欢迎访问老王论坛:laowang.vip)
; N5 ~3 Q, \' V1 v2 Q(欢迎访问老王论坛:laowang.vip)
6 |4 O0 J6 F* z- ?( j# k, y& y8 U3 z$ N, N(欢迎访问老王论坛:laowang.vip)
' g8 h: h9 p: J, J: ^" W(欢迎访问老王论坛:laowang.vip)
+ i/ u x; x8 U" D0 k(欢迎访问老王论坛:laowang.vip)
) {: J3 A, `9 [(欢迎访问老王论坛:laowang.vip)
|
|