|
楼主 |
发表于 2024-3-9 11:59:15
|
显示全部楼层
3 A& Y6 Z# P2 j5 z$ c(欢迎访问老王论坛:laowang.vip)
用python写的软件,给原片导入进去,输入图片数量,按照要生成的数量从视频中截取片段随机生成gif6 V8 ~( K U6 v8 e2 }(欢迎访问老王论坛:laowang.vip)
下面是部分生成函数,如果没有程序员基础就算了,你要是想要软件你留个qq啥的我发你
- s, ?5 [1 i# f! k9 i3 j, @5 e- Tdef generate_random_gifs(video_path, output_folder, num_gifs=None, duration_per_gif=1.5,target_width=960, target_height=540):
4 j0 H9 S- d/ u$ e" M) ?& Y # 创建输出文件夹
: q- F( c6 }( b* T1 N& w5 u os.makedirs(output_folder, exist_ok=True)& j, s, X7 Y% e0 z7 J H5 v(欢迎访问老王论坛:laowang.vip)
# 打开视频文件
3 H l; T7 }+ H; I video_clip = VideoFileClip(video_path)
& Q9 s! w1 F( p6 V( N5 T) s$ A # 获取视频的持续时间/ |1 Y1 ?; v7 ~8 P# V(欢迎访问老王论坛:laowang.vip)
video_duration = video_clip.duration9 K. r! {3 f8 F" O6 Q# q! b(欢迎访问老王论坛:laowang.vip)
# 确定每个 GIF 的持续时间(以秒为单位)
' `/ i x/ F" N5 c I N, W gif_duration = min(duration_per_gif, video_duration / num_gifs)
. E& U% t3 c2 G) y/ e # 生成随机时间点) Q3 _& R1 C# H; c% V(欢迎访问老王论坛:laowang.vip)
random_times = sorted([random.uniform(0, video_duration) for _ in range(num_gifs)])
( d P( h0 b# ^+ S: V- I4 i# q+ K # 在循环外加载视频文件
) T: P* m) |, _5 G# p7 g video_clip = VideoFileClip(video_path)
; `: }4 {4 w' @ # 为每个时间节点生成 GIF 图片
6 L9 n! s$ V$ m! S for i, t in enumerate(random_times):
" z& o% c! ^( z2 j# D8 |/ {# N # 提取剪辑' @0 C U2 X- |4 x, R; B( d' J- R(欢迎访问老王论坛:laowang.vip)
clip = video_clip.subclip(t, t + gif_duration)
4 g, p7 V$ _5 q4 Z$ ]0 g! w& N # 调整 GIF 图片大小9 ?; F( f& a2 C& ~. O" C3 }: A(欢迎访问老王论坛:laowang.vip)
resized_clip = clip.resize((target_width, target_height))
' P5 S+ p# v% @) J # 生成 GIF 文件的路径* C2 z: ^* w: c0 ~8 h(欢迎访问老王论坛:laowang.vip)
gif_path = os.path.join(output_folder, f"gif_{i + 1}.gif")
/ {% p" \. F* U3 W # 输出处理信息
4 b: R) I! b2 R print(f"正在处理第 {i + 1} 张图片")3 p& E4 u4 e+ T' E$ Y(欢迎访问老王论坛:laowang.vip)
# 写入 GIF 文件. w) ]: {3 t6 s8 e" H(欢迎访问老王论坛:laowang.vip)
resized_clip.write_gif(gif_path, fps=10, program='ffmpeg', opt="optimizeplus")
% N- a) M4 x& _% a # 关闭视频文件
' r; b1 g% N4 h' W" p7 Q# w8 y video_clip.close()
; `5 x0 O9 y; G0 E/ N' l' I
, }+ I7 I' L3 b7 T( O4 U, k6 m6 A+ s6 T- ?* K4 m3 i( T(欢迎访问老王论坛:laowang.vip)
' Y) L* c6 X' D+ o
. X' D4 j. t8 v; o8 K, l$ J- p& x- z# N5 s. E( X3 y/ J0 X9 T7 D(欢迎访问老王论坛:laowang.vip)
* I5 H, ^5 g4 Q. Q" j& O' d/ @& U2 i, F& Z(欢迎访问老王论坛:laowang.vip)
|
|