|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
_( B7 A! u% c* h用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif
! L/ h0 F% @, B下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
9 Q$ i( s9 h* Z) X1 n3 f& F; `def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
. q. c1 {2 G2 x; g9 ?8 G0 |. E # 创建输出文件夹; t, b# c+ |( c: R9 x: f$ E(欢迎访问老王论坛:laowang.vip)
os.makedirs(output_folder, exist_ok=True)
$ Z3 u/ I$ s8 D" S; U' c+ e # 打开视频文件
9 C1 C3 W5 D6 h$ s8 l: Q video_clip = VideoFileClip(video_path)) i! g& |* H$ a5 z7 r" r(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间1 G. W0 L C5 n9 ]6 X% w' x/ q(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration
! [7 W2 S! i0 q # 确定每个 GIF 的持续时间(以秒为单位)* j' g* }0 F0 A(欢迎访问老王论坛:laowang.vip)
gif_duration = min(duration_per_gif, video_duration / num_gifs)
! ~* n; p, T0 w7 x4 ~ # 生成随机时间点6 B, u$ e& |- I+ ^6 P& }9 r0 T% _(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])- l$ h, |% v# W6 L# E(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
# J$ s4 l/ o9 U" x; I video_clip = VideoFileClip(video_path). Z* L2 S, E9 p, }. E! F(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片. K0 M2 g8 c. J2 c(欢迎访问老王论坛:laowang.vip)
for i, t in enumerate(random_times):/ T& y* m6 d+ G+ ](欢迎访问老王论坛:laowang.vip)
# 提取剪辑
, P5 U4 Z# Z! M3 z/ i7 _ clip = video_clip.subclip(t, t + gif_duration)
5 K2 S# F. B- y # 调整 GIF 图片大小. m. u4 Z% ]+ u0 j(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))4 R+ L( }$ l6 K* _(欢迎访问老王论坛:laowang.vip)
# 生成 GIF 文件的路径
+ o1 d* `; {& ?7 @+ z7 r. ? gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif"), m1 Y& |6 [) x2 X9 j(欢迎访问老王论坛:laowang.vip)
# 输出处理信息 A3 U5 f6 P- {* A' Y(欢迎访问老王论坛:laowang.vip)
print(f"正在处理第 {i + 1} 张图片")
0 Z$ w1 p, [9 O/ }7 s # 写入 GIF 文件. K) d" b/ ~+ o4 v$ ~3 ~9 o2 m(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
' K! s! ~/ E5 ` l+ t # 关闭视频文件
j7 D# P) j* }! _" r) P7 f. C9 N video_clip.close()
" ~+ ]) P5 \, X8 u0 |; ]2 N5 J( u" c4 G! l) E: W# P5 q' Z(欢迎访问老王论坛:laowang.vip)
* W4 i3 z) L/ r. y0 @! Q2 W3 n" S5 F: o7 _# J(欢迎访问老王论坛:laowang.vip)
2 ^% \ G% F% n7 F2 t6 K9 w) d(欢迎访问老王论坛:laowang.vip)
2 C3 o& S- z- w
8 s" c( s7 w- s* Q. p- I7 e* A; J3 E4 d) m. L) w(欢迎访问老王论坛:laowang.vip)
|
|