Py对视频、音乐进行系列性的操作

发布时间 2023-08-30 15:45:20作者: 骚年来支华子

Py对视频进行分割操作

from moviepy.editor import concatenate_videoclips, ImageClip, VideoFileClip
from moviepy.editor import concatenate_videoclips, ImageClip, VideoFileClip
import cv2
import eyed3
import imghdr
from eyed3.id3.frames import ImageFrame
from PIL import Image, ImageFilter, ImageOps
 
input_file = "9.mp4" # 输入视频文件名
output_path = "fenge" # 分割之后的文件路径
video_files = ["9.mp4", "11.mp4"]
split_time = 10 #以10秒为单位进行分割
cover_image = "bb.jpg"

img = Image.open("aa.jpg")
 
一、分割视频操作信息
def split_video(input_file, output_path):
video = VideoFileClip(input_file)
end_time = video.duration
print(f"当前视频的总时长数", end_time)
index = 1 #第几个视频
for i in range(0,int(end_time),10):
if i+ 10 < end_time:
segment = video.subclip(i, i+10)
else:
segment = video.subclip(i, end_time)
segment.write_videofile(f"{output_path}/output_{index}.mp4")
print(f"拆分{index}个视频成功")
index += 1
 
二、获取对应视频的封面图信息
def get_video_cover_image(video_path, cover_image):
vidcap = cv2.VideoCapture(video_path)
success,image = vidcap.read()
n = 1
while n < 30:
success, image = vidcap.read()
n+=1
imag = cv2.imwrite(cover_image,image)
if imag == True:
print('ok')
 
三、将多个视频合并成一个视频
def merge_video(video_files,output_file):
video_clips = []
for file in video_files:
clip = VideoFileClip(file)
video_clips.append(clip)
final_clip = concatenate_videoclips(video_clips)
final_clip.write_videofile(output_file)
 
四、对音频文件进行作者等信息的修改操作
def saveMp3(mp3_path,img_path):
audioFile = eyed3.load(path = mp3_path)
audioFile.tag.artist = "*****"
audioFile.tag.title = "*******"
audioFile.tag.album = "******"
img_type = imghdr.what(img_path)
audioFile.tag.images.set(ImageFrame.FRONT_COVER, open(img_path,'rb').read(),'image/'+img_type)
audioFile.tag.save(version = eyed3.id3.ID3_DEFAULT_VERSION)