|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
( ]4 q4 O* g& _# {" @(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif$ A/ m6 u) _$ G- D8 M3 @) k5 @(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
. S+ f' u8 |( X% Q2 u8 I; [def generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
" |, g, \, n( P- Z& O # 创建输出文件夹
$ T/ I. M1 W* r os.makedirs(output_folder, exist_ok=True)
& [8 b4 }& a+ s4 d. D+ Z" o+ F # 打开视频文件
" k9 h% `3 F2 \1 c! [; @+ l! G video_clip = VideoFileClip(video_path)3 H: q4 i, Q; l/ v2 [(欢迎访问老王论坛:laowang.vip)
# 获取视频的持续时间
4 v, n, |4 g5 ]! i' E5 q) e: U video_duration = video_clip.duration
1 O2 f9 ^# N" J. w d # 确定每个 GIF 的持续时间(以秒为单位)
3 L; x! Y$ K$ @& c; x5 V) |$ K gif_duration = min(duration_per_gif, video_duration / num_gifs)
# N4 I6 L3 z0 ~0 c# E/ z# [8 c' v # 生成随机时间点9 [' h: q9 o1 O( t6 O# i V0 u(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)]), Q& \" q# @. T. d) w(欢迎访问老王论坛:laowang.vip)
# 在循环外加载视频文件
5 z- W- a9 p" T. a/ ]& l* ~2 ? video_clip = VideoFileClip(video_path)- v! t W0 q3 B! d- W% r0 `& T(欢迎访问老王论坛:laowang.vip)
# 为每个时间节点生成 GIF 图片
, Q2 |0 |6 B0 J9 E9 `2 n/ f$ r for i, t in enumerate(random_times):
R# m/ N) O5 |# j( B; I$ w # 提取剪辑, T( l* [8 I& m) Y8 \! y(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
! j; P& d9 E0 m # 调整 GIF 图片大小( X+ g' y+ Z- Y4 L5 R: M(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
9 T* L8 y# A3 e" s/ o8 G M/ B # 生成 GIF 文件的路径
' @; T" t V* a( I; T$ A gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif"); N \( }) A% e- F# O(欢迎访问老王论坛:laowang.vip)
# 输出处理信息
0 A q8 n+ X' n# E. p' |, q m print(f"正在处理第 {i + 1} 张图片")6 }. N b( o) v% m! y(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件- |+ }, g8 J" u3 D(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
( z& d2 Q8 e; W) c" D # 关闭视频文件* r, v$ C& i! |) b(欢迎访问老王论坛:laowang.vip)
video_clip.close()
+ I! f9 F1 F. N1 j8 y8 H' g* q
" t N4 }" S5 |% O* W/ f( |
3 V# s7 C8 u: `
0 V# y. G' a" T& ~8 W( }$ B3 `8 D9 y6 X$ N4 z(欢迎访问老王论坛:laowang.vip)
! k6 t7 [; p9 v+ X0 H(欢迎访问老王论坛:laowang.vip)
& z# ?4 n, H9 D$ R1 |+ a(欢迎访问老王论坛:laowang.vip)
7 O. b+ U5 s: I J0 s9 k |
|