|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
3 i0 T4 n& j- {用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
: X7 L5 f% a _$ Q9 H- x下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
8 W. X7 q% c9 \* v$ y* |def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
7 P1 L6 j7 _6 ? # 创建输出文件夹
. O" h. q3 \* o. I' d. i' [ os.makedirs(output_folder, exist_ok=True)3 {) i$ ?+ r3 c* W, e(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
E: H5 Q7 g, l. b" i video_clip = VideoFileClip(video_path)
! L) |, h8 {' w # 获取视频的持续时间
+ G- v9 P4 ?% K# n& i9 Z! @! \7 G* Q video_duration = video_clip.duration+ o' X9 Z5 \7 ]- ](欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
) H7 O w, G: z* ^6 } gif_duration = min(duration_per_gif, video_duration / num_gifs)
5 T2 z# I6 x7 Q$ U4 ?0 `* N # 生成随机时间点
! n, b( l3 P. u# X7 u random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])8 d2 y1 [, P$ _: Q0 |(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
|8 Z+ V% X+ @' k. W video_clip = VideoFileClip(video_path)
2 m K3 j8 S. D* j # 为每个时间节点生成 GIF 图片9 \/ x! T$ f: Y7 y' N1 M5 E(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):7 F- C( O- N+ `# h5 Z6 y(欢迎访问老王论坛:laowang.vip)
# 提取剪辑( M# |0 Q p, E! d- ?) ]% C(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
* G8 e+ c; |, M& f, U1 R- h # 调整 GIF 图片大小8 p( K1 O9 J- Y& T$ l6 E# J(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
6 t! W5 G0 V% z% x) m3 R # 生成 GIF 文件的路径
- A4 o. Z- e- K. j7 P) `+ X gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif"); I0 `7 y' k8 L) W' R(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
( f- b: @ y9 t8 o! n; L6 c print(f"正在处理第 {i + 1} 张图片")
& h1 M0 q: X: \0 u; h! m # 写入 GIF 文件9 q/ k, i B" {# ~" R2 \ L) L(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")2 r% u- ? _, @/ v7 J(欢迎访问老王论坛:laowang.vip)
# 关闭视频文件
% Q7 V: x# X2 K& V2 w video_clip.close()7 {& A1 b) I6 }/ \(欢迎访问老王论坛:laowang.vip)
: w1 h3 H* \) s# l5 r(欢迎访问老王论坛:laowang.vip)
* \0 a4 {& `; ? E1 m9 t6 g
9 b+ k. |! m) Y f' _# j/ y3 U9 c+ T3 p# b0 U(欢迎访问老王论坛:laowang.vip)
2 L8 i5 q( ]: k
$ @9 f5 c; y% A( _( K9 _' ^8 J, n, c! ~2 Z# x+ Y1 O(欢迎访问老王论坛:laowang.vip)
|
|