# python data_utils/pre_video/multi_fps_crop_sync.py
import cv2
import os
from tqdm import tqdm
import subprocess
# 加载人脸检测模型
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
def contains_face(frame):
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
return len(faces) > 0
def crop_center(frame, crop_width, crop_height):
height, width = frame.shape[:2]
start_x = width//2 - crop_width//2
start_y = height//2 - crop_height//2
return frame[start_y:start_y+crop_height, start_x:start_x+crop_width]
def extract_audio(input_path, audio_path):
subprocess.run(['ffmpeg', '-y', '-i', input_path, '-vn', '-acodec', 'copy', audio_path])
def merge_video_audio(video_path, audio_path, output_path):
# 使用ametadata滤镜将音频的时间戳与视频流的时间戳对齐
subprocess.run([
'ffmpeg', '-y', '-i', video_path,
视频调整帧率、分辨率+音画同步
于 2024-07-11 13:48:47 首次发布

最低0.47元/天 解锁文章
520

被折叠的 条评论
为什么被折叠?



