# coding=utf-8
__author__ = 'Administrator'
# pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
import os
import cv2
import time
from moviepy.editor import*
def cut_movie(source_path,desc_path,start,end):
print(source_path,desc_path,start,end)
video =CompositeVideoClip([VideoFileClip(source_path).subclip(start,end)])
video.write_videofile(desc_path)
def get_movie_length(path):
cap = cv2.VideoCapture(path)
if cap.isOpened():
rate = cap.get(5)
frame_num = cap.get(7)
duration = frame_num / rate
item = int(duration)
return item
def get_str_for_num(num):
return '%04d' % num
def cut_one_movie(source_path,out_dir_path,time_list):
desc_path_list=[]
start_time=time.time()
index= source_path.rindex("/")
dir_path= source_path[0:index]
filename= source_path[index+1:]
print(dir_path)
print(filename)
single_index = filename.index(".")
filename0=filename[0:single_index]
filename1=filename[single_index:]
print(filename0)
print(filename1)
for i in range(1,len(time_list)+1):
st= time_list[i-1][0]
end= time_list[i-1][1]
desc_path=out_dir_path+filename0+"_"+get_str_for_num(i)+filename1
cut_movie(source_path,desc_path,st,end)
desc_path_list.append(desc_path)
print("desc_path:" + desc_path)
end_time=time.time()
cost_time = end_time-start_time
print("cost_time",cost_time)
return desc_path_list
def main_step(source_dir,out_dir_path):
files = os.listdir(source_dir)
for f in files:
# full_file_name = os.path.join(source_dir,f)
full_file_name = source_dir+r"/"+f
print(full_file_name)
cut_one_movie(full_file_name,out_dir_path)
def combine_list_video(list_path, out_path):
clip_list = []
for i in list_path:
clip_list.append(VideoFileClip(i))
# clip1 = VideoFileClip(path1)
# clip2 = VideoFileClip(path2)
# 结合剪辑,你甚至能够完全自动化剪辑拼接视频的操作
# clip2 =VideoFileClip("myvideo2.mp4").subclip(50,60)
final_clip = concatenate_videoclips(clip_list)
# final_clip = concatenate_videoclips([clip1,clip2,clip3])
final_clip.write_videofile(out_path)
def print_time():
now = time.time()
time_str = time.strftime("%Y-%m-%D %H:%M:%S", time.localtime(now))
print(time_str)
if __name__ == '__main__':
out_dir_path=r"D:/1/biaoqing/"
source_path = r'D:/1/biaoqing/video.mp4'
out_file = r'D:/1/biaoqing/result.mp4'
# time_list=[(1260,1275),(1140,1320)]
# time_list=[(1850,1870),(1790,1997)]
time_list=[(0,16),(37,45),(66,71)]
desc_path_list = cut_one_movie(source_path,out_dir_path,time_list)
combine_list_video(desc_path_list,out_file)
python 拆分视频并且整合(速度慢,会保存每个分段视频)
qq_4924484462024-09-01 0:32
相关推荐
Ajiang28247353041 小时前
贪吃蛇项目实现(C语言)——附源码guicai_guojia2 小时前
面试题篇: 跨域问题如何处理(Java和Nginx处理方式)鼠鼠龙年发大财2 小时前
fly专享hunandede2 小时前
直播相关02-录制麦克风声音,QT 信号与槽,自定义信号和槽lzb_kkk2 小时前
【Redis】redis5种数据类型(哈希)易雪寒3 小时前
Maven从入门到精通(三)FreakStudio3 小时前
全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数Good_tea_h4 小时前
如何实现Java中的多态性IT毕设梦工厂4 小时前
计算机毕业设计选题推荐-项目评审系统-Java/Python项目实战格林威4 小时前
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)