对视频文件截取指定时间段(时分秒格式)得到新视频文件
pip install moviepy
from moviepy.editor import VideoFileClip
def convert_hms_to_seconds(hms):
"""
将时分秒格式的时间转换为秒。
:param hms: 时分秒格式的时间,例如"01:02:03"表示1小时2分钟3秒。
:return: 转换后的秒数。
"""
h, m, s = [int(i) for i in hms.split(':')]
return 3600 * h + 60 * m + s
def trim_video(input_file, start_time_hms, end_time_hms, output_file):
"""
截取视频的指定时间段并保存。
:param input_file: 输入视频文件路径。
:param start_time_hms: 开始时间(时分秒格式,例如"00:01:00")。
:param end_time_hms: 结束时间(时分秒格式,例如"00:02:00")。
:param output_file: 输出视频文件路径。
:return: None。
"""
start_time = convert_hms_to_seconds(start_time_hms)
end_time = convert_hms_to_seconds(end_time_hms)
clip = VideoFileClip(input_file)
trimmed_clip = clip.subclip(start_time, end_time)
trimmed_clip.write_videofile(output_file, codec="libx264", audio_codec="aac")
trim_video("input.mp4", "00:00:10", "00:00:20", "output.mp4")
PDF 文件按照指定页索引拆分得到
2
2
2 份新 PDF 文件
pip install PyPDF2
from PyPDF2 import PdfReader, PdfWriter
in_pdf_path = 'pdf.pdf'
out_pdf1_path = 'pdf1.pdf'
out_pdf2_path = 'pdf2.pdf'
need_list = [10, 20, 28, 31, 34, 54, 58, 63, 65]
def trim_pdf(in_pdf_path, out_pdf_path1, out_pdf_path2):
reader = PdfReader(in_pdf_path)
writer1, writer2 = PdfWriter(), PdfWriter()
for i in range(len(reader.pages)):
if (i + 1) in need_list:
writer1.add_page(reader.pages[i])
else:
writer2.add_page(reader.pages[i])
with open(out_pdf1_path, "wb") as f:
writer1.write(f)
with open(out_pdf2_path, "wb") as f:
writer2.write(f)
trim_pdf(in_pdf_path, out_pdf1_path, out_pdf2_path)
按照设定速度播放视频
pip install opencv-python
import cv2
def play_video_with_speed(video_path, speed, window_size, window_name):
cap = cv2.VideoCapture(video_path)
fps = cap.get(cv2.CAP_PROP_FPS)
new_fps = fps * speed
cv2.namedWindow(window_name, cv2.WINDOW_KEEPRATIO)
cv2.resizeWindow(window_name, window_size[0], window_size[1])
while True:
ret, frame = cap.read()
if not ret:
break
resized_frame = cv2.resize(frame, window_size)
cv2.imshow(window_name, resized_frame)
if cv2.waitKey(int(1000 / new_fps)) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
video_path = 'video.mp4'
speed = 5
window_size = (400, 828)
window_name = 'Video'
play_video_with_speed(video_path, speed, window_size, window_name)