python+ffmpeg实现视频伪原创处理代码
代码语言:python
所属分类:其他
代码描述:python+ffmpeg实现视频伪原创处理代码,python结合ffmpeg实现对一个视频进行分割一小段后,再对分割后的视频进行风格化滤镜、放大缩小、速率控制、旋转等操作后,再一起合并成一个新视频。实现伪原创。
代码标签: python ffmpeg 视频 伪原创 处理 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
import subprocess import random import os import json def execute_ffmpeg(command): subprocess.run(command, check=True) def split_video(input_file, output_prefix, duration): command = [ 'ffmpeg', '-i', input_file, '-c', 'copy', '-f', 'segment', '-segment_time', str(duration), '-reset_timestamps', '1', f'{output_prefix}%03d.mp4' ] execute_ffmpeg(command) def apply_effects(input_file, output_file): # 获取输入视频的信息 probe = subprocess.check_output(['ffprobe', '-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', input_file]) video_info = json.loads(probe) width = int(video_info['streams'][0]['width']) height = int(video_info['streams'][0]['height']) # 缩放范围更小,避免过度放大或缩小 scale_factor = random.uniform(0.95, 1.05) new_width = int(width * scale_factor) new_height = int(height * scale_factor) # 确保新的宽度和高度是偶数 new_width = (new_width // 2) * 2 new_height = (new_height // 2) * 2 # 随机选择一个滤镜效果,但概率降低 filters = [ 'colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131', # 复古 'hue=s=0', # 黑白 'eq=brightness=0.06:saturation=1.3', # 轻微增强饱和度 'unsharp=3:3:1', # 轻微锐化 '', # 无效果 '', # 无效果 ] filter_effect = random.choice(filters) # 速率变化更温和 speed = random.uniform(0.9, 1.1) # 旋转角度更小 rotate = random.uniform(-5, 5) filter_complex = f"[0:v]" # 随机决定是否应用每个效果 if random.choice([True, False]): filter_complex += f"setpts={1/speed}*PTS," if filter_effect: filter_complex += f"{filter_effect}," if random.choice([True, False]): filter_complex += f"scale={new_width}:{new_height}," if random.choice([True, False]): filter_complex += f"rotate={rotate}*PI/180:c=black@0" # 移除末尾的逗号(如果存在) filter_complex = filter_complex.rstrip(',') command = [ 'ffmpeg', '-i', input_file, '-filter_complex', filter_complex, '-c:a', 'aac', # 使用 AAC 音频编码 '-c:v', 'libx264', # 使用 x264 视频编码器 '-preset', 'medium', # 编码器预设 '-crf', '23', # 恒定速率因子,控制质量 '-pix_fmt', 'yuv420p', # 使用更通用的像素格式 '-movflags', .........完整代码请登录后点击上方下载按钮下载查看
网友评论0