文件夹中视频批量调节参数,视频去重这样搞定

文件夹中视频批量调节参数,这样操作不需要打开剪映了!

from moviepy.editor import VideoFileClip, concatenate_videoclips
import cv2
import os

# 自定义增强函数
def enhance_frame(frame, brightness=-1, contrast=-1, saturation=-1, sharpening_factor=-1):
    # OpenCV处理
    bgr_frame = frame[:, :, ::-1].copy()  # RGB转BGR

    # 调整亮度(假设亮度范围-100到100,负数表示降低亮度)
    bgr_frame += brightness * 255 / 100

    # 对比度调整(假设对比度范围-100到100,负数表示降低对比度)
    alpha = 1.0 + contrast / 100.0
    bgr_frame = cv2.convertScaleAbs(bgr_frame, alpha=alpha, beta=0)

    # 饱和度调整(假设饱和度范围-100到100,负数表示降低饱和度)
    hsv_frame = cv2.cvtColor(bgr_frame, cv2.COLOR_BGR2HSV)
    hsv_frame[:, :, 1] *= (1 + saturation / 100)
    bgr_frame = cv2.cvtColor(hsv_frame, cv2.COLOR_HSV2BGR)

    # 锐化(假设锐化程度可通过系数调整,负数无效,此处仅为示例)
    if sharpening_factor > 0:
        kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
        sharp_frame = cv2.filter2D(bgr_frame, -1, kernel, sharpening_factor)
        bgr_frame = sharp_frame

    # 返回电影Py内部使用的RGB格式
    return bgr_frame[:, :, ::-1]

# 批量处理
input_folder = 'input_videos'
output_folder = 'output_videos'

for filename in os.listdir(input_folder):
    if filename.endswith(('.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv')):
        input_video_path = os.path.join(input_folder, filename)
        output_video_path = os.path.join(output_folder, 'processed_' + filename)

        # 创建VideoFileClip并设置特效
        clip = VideoFileClip(input_video_path)
        enhanced_clip = clip.fx(enhance_frame, brightness=-1, contrast=-1, saturation=-1, sharpening_factor=-1)

        # 变速处理(假设降低一半速度)
        slower_clip = enhanced_clip.speedx(0.5)

        # 抽帧处理(假设抽掉每两帧的第二帧)
        # 注意:抽帧可能会导致不流畅的播放效果,这里仅作示意,实际应用时请谨慎
        # dropped_frames_clip = slower_clip.subclip(t_start=None, t_end=None, every_second=2)

        # 写入视频文件
        slower_clip.write_videofile(output_video_path, audio=True)

注:变速和抽帧操作未在enhance_frame函数中完成,

实际上在moviepy中可以单独使用fx方法来实现变速(speedx)和抽帧(subclip)的功能。

清晰度提升通常意味着超分辨率,这不在本示例范围内,一般会使用专门的算法如ESPCN等。

“光感”是一种主观感受,难以量化处理,若要模拟类似效果,可能需要运用特定的艺术滤镜或风格迁移技术。

请根据具体需求调整各项参数,并完善缺失的部分逻辑。


    定义了一个名为enhance_frame的函数,用于对单个视频帧进行增强处理,包括亮度、对比度、饱和度和锐化的调整。这个函数首先将帧从RGB格式转换为BGR格式以便使用OpenCV进行处理,然后根据传入参数分别调整各项属性,并最终返回处理后的RGB格式帧。

    设置了输入和输出文件夹路径。

    遍历输入文件夹内的所有文件,对于符合视频格式(例如.mp4, .avi, .mkv, .mov, .wmv, .flv)的文件,读取并创建VideoFileClip对象。

    使用enhance_frame函数对视频剪辑每一帧进行增强处理,得到一个新的增强过的视频剪辑enhanced_clip。

    将增强过的视频进一步减速处理,即降低播放速度至原来的一半,生成新的视频剪辑slower_clip。

    (注释掉的部分)原代码还包含了抽帧处理的示例,但在这里并未启用。如果启用,会按设定的频率(比如每两帧抽掉第二帧)抽取部分帧来生成新的视频剪辑。

    最后,将经过增强和减速处理的slower_clip视频剪辑写入到输出文件夹,同时保留音频信息。

综上所述,该代码实现了对视频文件进行批量的增强(亮度、对比度、饱和度、锐化)和变速处理,并将处理后的结果输出到指定的文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值