Python moviepy
1.安装
pip install moviepy
2.导包
import moviepy.editor as mpy
from moviepy.editor import VideoFileClip
from moviepy.editor import AudioFileClip
from moviepy.editor import ImageSequenceClip
- VideoFileClip加载视频文件
- AudioFileClip加载音频文件
- ImageSequenceClip 可以从指定的文件夹加载一系列按顺序命名的图像文件,也可以直接使用图像数组来创建图像序列。每个图像文件或图像数组都将被视为视频的一帧。
3.提取A视频的音频,注入到B视频中
# 读取2个视频文件
videoclip_a = VideoFileClip("1644974996.mp4")
videoclip_b = VideoFileClip("1644974998.mp4")
# 提取A视频文件的音频部分
audio_a = videoclip_a.audio
# 给B设置音频,注意视频最终合成的大小会依据长的为准
videoclip_c = videoclip_b.set_audio(audio_a)
# 输出新的视频文件
videoclip_c.write_videofile("videoclip_c.mp4")
4.去掉视频声音
video = VideoFileClip('1644974996.mp4')
video = video.without_audio()
5.提取视频中的音频内容
clip = VideoFileClip('./1644974996.mp4').subclip(10, 20)
# .subclip(10, 20):对视频进行剪辑,截取从第10秒到第20秒之间的片段。
audioclip1 = clip.audio # 从视频对象中提取音频
audioclip1.write_audiofile('a.mp3') # 写入音频文件
时间戳问题
import time
start_time = time.time()
end_time = time.time()
run_time = end_time - start_time
minutes, seconds = divmod(run_time, 60)
hours, minutes = divmod(minutes, 60)
print(f"程序运行时间:{int(hours)} 小时, {int(minutes)} 分钟, {seconds:.2f} 秒")
divmod()是一个内置函数,它接受两个参数,第一个参数是要进行除法和取余操作的数值(run_time),第二个参数是除数(60,表示一分钟的秒数)。这个函数返回一个包含商和余数的元组。
minutes, seconds = divmod(run_time, 60):将返回的元组中的商(即分钟数)和余数(即剩余的秒数)分别赋值给minutes和seconds变量。