功能简介
此程序的功能是删除视频中的广告片段,并保存删除广告后的新视频文件。
工作流程:
- 导入VideoFileClip类,这是moviepy库中的一个类,用于处理视频文件。
- 定义一个函数time_to_seconds,用于将时间字符串(格式为HH:MM:SS)转换为秒数。
- 使用VideoFileClip类加载视频文件,这里加载的是位于E:\Pycharm\pythonProject\moviepy\无邪.mp4的视频文件。
- 手动确定广告的开始和结束时间,这里广告开始时间为00:00:20,结束时间为00:00:30。
- 使用time_to_seconds函数将广告开始和结束时间从字符串转换为秒数。
- 创建一个新视频剪辑,跳过广告部分。首先,使用subclip方法从0秒开始到广告开始时间创建一个新视频剪辑。然后,使用set_end方法将新视频剪辑的结束时间设置为视频的持续时间减去广告的持续时间。
- 使用write_videofile方法将新视频剪辑保存为一个新的视频文件,这里保存的文件名为E:\Pycharm\pythonProject\moviepy\无邪删除片段.mp4,使用libx264编码视频,使用aac编码音频。
代码展示
# 删除视频片段
from moviepy.editor import VideoFileClip
# 将广告开始和结束时间从字符串转换为秒数
def time_to_seconds(time_str):
h, m, s = map(int, time_str.split(':'))
return h * 3600 + m * 60 + s
# 加载视频文件
video = VideoFileClip(r'E:\Pycharm\pythonProject\moviepy\无邪.mp4')
# 手动确定广告的开始和结束时间(秒)
ad_start = '00:00:20' # 广告开始的秒数
ad_end = '00:00:30' # 广告结束的秒数
# 将广告开始和结束时间从字符串转换为秒数
ad_start_seconds = time_to_seconds(ad_start)
ad_end_seconds = time_to_seconds(ad_end)
# 创建一个新视频剪辑,跳过广告部分
new_video = video.subclip(0, ad_start_seconds).set_end(video.duration - (ad_end_seconds - ad_start_seconds))
# 写出新视频剪辑
# 使用libx264编码视频,使用aac编码音频。
new_video.write_videofile(r'E:\Pycharm\pythonProject\moviepy\无邪删除片段.mp4', codec="libx264", audio_codec='aac')