|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
7 S/ K) r) |! D& w; V, q* E% X用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif* |# J8 B7 `& I% a( P(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
# e. o4 H5 p9 ` _; A$ @def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):2 P5 g. f; k- h; k# g/ x n+ W# l( A(欢迎访问老王论坛:laowang.vip)
# 创建输出文件夹9 u' g# w+ T. Y" J. D, \(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)
8 E2 D/ K" m, f9 V # 打开视频文件
: n; S# P- Y! O* {' ] video_clip = VideoFileClip(video_path)
1 i( }$ V# a+ F2 {) q& G Z # 获取视频的持续时间! e2 ^ ^! [0 y" p6 b(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
" w2 J6 Y$ G# S # 确定每个 GIF 的持续时间(以秒为单位)5 C- v5 \- }8 I9 u- y8 E- j+ a(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)( ^+ b1 j) U C, x) A. g(欢迎访问老王论坛:laowang.vip)
# 生成随机时间点
3 Z4 G; ^# t* z9 M4 C random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])5 S7 v( @0 j" T0 r2 g. W! o& P(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
- U+ y8 T# ~6 M- U video_clip = VideoFileClip(video_path), g2 l- m' Y2 ?. L9 \& ](欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片: N: `# ], J& K4 ?1 i# u- R( ?9 Z(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):
/ W8 t) j0 g4 ~1 c7 ` # 提取剪辑* h5 _8 r6 j1 d( Z' a& }5 ]: X) T- F(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)& e B5 u) } a3 x( x(欢迎访问老王论坛:laowang.vip)
# 调整 GIF 图片大小
- b' I2 S% [) g) w resized_clip = clip.resize((target_width, target_height))
( o1 I; U2 p! F$ v# {2 A # 生成 GIF 文件的路径
' V% {5 ~* x$ L A' m4 G4 u gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")+ ~& e* E" v, E1 c9 h! I$ I(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
! L, ?3 ~( }% A2 s print(f"正在处理第 {i + 1} 张图片")
. e4 ]* _% `3 G% h( k) |7 E9 H # 写入 GIF 文件
7 X4 a4 t, s: h5 ^ resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
0 a* ]2 t+ D! X" t( r% E& s. ` # 关闭视频文件% s. |# |6 ^8 d6 S(欢迎访问老王论坛:laowang.vip)
video_clip.close()
9 j2 G3 F$ L- Z" `* @2 |
6 r9 F9 p+ d, b( Y5 w" B U- ^; \0 B: v2 ?(欢迎访问老王论坛:laowang.vip)
, j3 P0 j( p. L4 z4 _* K6 U(欢迎访问老王论坛:laowang.vip)
) f' @2 \0 E& f) X: x; N3 U
: r F" W* \- z* [% n0 l0 R% x( U
8 d }9 A7 a1 ~- N; Y1 Q
! ]3 E; R3 q6 Z |
|