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