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]):
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0