怎么使用Python和EV剪辑短视频
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇内容介绍了"怎么使用Python和EV剪辑短视频"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一
千家信息网最后更新 2025年11月16日怎么使用Python和EV剪辑短视频用 Python 和 EV 剪辑短视频教程用 Python 和 EV 剪辑短视频教程
本篇内容介绍了"怎么使用Python和EV剪辑短视频"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、将图片转化成视频
通过python的opencv库就可以把图片转成视频,要注意的是把帧率设置成30,方便后续和其他视频拼接,因为帧率不同会导致拼接出错。
import cv2,os import matplotlib.pyplot as plt from PIL import Image canshu=0.5 #设置视频分辨率参数 img = Image.open('中国票据发展报告.jpg') img.save('ddd.jpg') img = cv2.imread('ddd.jpg') #设置一个图片的大小作为指定大小 imgimgInfo = img.shape size = (int(imgInfo[1]*canshu),int(imgInfo[0]*canshu)) fourcc = cv2.VideoWriter_fourcc('M','J','P','G') videoWrite = cv2.VideoWriter('3.avi',fourcc,30,size,True) #参数依次是:文件路径;指定编码器;帧率;画面大小;是彩色还是黑色 file_list = os.listdir('./1//') #获取文件夹里的列表 for i in range(0,len(file_list)): fileName ='./1//'+file_list[i] img = Image.open(fileName) #根据样本图片调整图片大小 (x00,y00) = img.size x_s = x00*canshu y_s = int(y00 * x_s / x00) imgimg = img.resize(size,Image.ANTIALIAS) img.save('ddd.jpg') img = cv2.imread('ddd.jpg') #读取图像 #因为是单张图片的时间太短,每一张图片插入20帧 for j in range(0,20): videoWrite.write(img) videoWrite.release()但是如果要将图片做一些简单的动画效果,例如做一个画面逐渐缩小的动画,那就要借助EV剪辑,调整图片的大小,加上白背景,然后导出视频。
注意导出的时候要设置帧率,如果时间过长,可以设置设置帧率低一点,然后用python程序把播放速度提升,帧率也会相应提高。
import cv2 vdop = "4.mp4"#输入视频路径 cap = cv2.VideoCapture(vdop) fps = cap.get(cv2.CAP_PROP_FPS) #获取输入视频的帧率size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))#获取输入视频的大小 fourcc = cv2.VideoWriter_fourcc('I', '4', '2', '0') #These are the FOURCCs to compressed formats out_path = "8.mp4" #输出2倍速的avi格式的视频路径 output_viedo = cv2.VideoWriter() fps = (29.5/26.8)*fps #2倍速处理 #isColor:如果该位值为Ture,解码器会进行颜色框架的解码,否则会使用灰度进行颜色架构 output_viedo.open(out_path , fourcc, fps, size, isColor=True) rval = True while rval: rval, img = cap.read()#逐帧读取原视频 output_viedo.write(img)#写入视频帧 output_viedo.release() cap.release()用opencv处理过的视频会失去音频。我们也可以使用ffmpeg来调速,可以保留声音,特别适合微调。要使用FFmpeg,安装完之后,设置环境变量,就能在python调用FFmpeg。
import os os.system('ffmpeg -i 4.mp4 -vf "setpts=2*PTS" 8.mp4') #图像两倍慢速二、将视频添加音频作为背景音乐
import subprocess,os mp4_f = './2.avi' mp3_f = './背景音.mp3' n_mp4_n = 'new' + mp4_f.split('/')[-1]n_mp4_f = mp4_f.replace(mp4_f.split('/')[-1],n_mp4_n) com = f'D:\\ffmpeg\\bin\\ffmpeg.exe -i "{mp3_f}" -i "{mp4_f}" ' \ f' -acodec copy -vcodec copy "{n_mp4_f}"' print(com) os.system(com)三、合并视频
1.剪切视频
import os import subprocess,cv2 com = f'ffmpeg -i 5.mp4 -c copy -t 00:00:20.0 output.mp4' # 截取前20秒 -ss 00:00:00.0 起始位置 os.system(com)
2.要将不同的视频合并,首先要确保帧率和画布大小一样,这样才能确保合并起来不出错。下面代码是调整画布。将形状不同的视频画面,要按照原视频的比例,调整到一个框里面去。
import subprocess,os import cv2 #获取样本的画布大小 video_path = "2\\1.mp4" cap = cv2.VideoCapture(video_path) frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))# 获取视频高度 frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 获取视频宽度 fps = cap.get(cv2.CAP_PROP_FPS) #视频平均帧率 h0=frame_height w0=frame_width file_list = os.listdir('3\\') #获取文件夹里的所有文件列表 for i in file_list: #获取当前视频的 video_path = '3\\'+i cap = cv2.VideoCapture(video_path) frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取视频高度、宽度 frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) h=frame_height w=frame_width if h/w>h0/w0: strn=f'ffmpeg -i %s -vf "scale=(%s*%s/%s):%s,pad=%s:%s:(%s-(%s*%s/%s))/2:0:black" %s'% (video_path,w,h0,h,h0, w0,h0,w0,w,h0,h,i) else: strn=f'ffmpeg -i %s -vf "scale=%s:%s*%s/%s,pad=%s:%s:0:((%s-(%s*%s/%s))/2):black" %s'% (video_path,w0,w0,h,w, w0,h0, h0,w0,h,w,i) #本图缩放后=宽:高,位置=总宽:总高:水平方向放置的位置:垂直方向放置的位置 os.system(strn)3.将视频合并
将视频先转化成ts格式,然后再合并,成功率更高。
import os lista='kaishiwizhi' #先获取这些MP4文件,转换成ts格式 for each in os.listdir(): if each[-3:] in ['mp4','avi'] : os.system('ffmpeg.exe -i %s -c copy -vbsf h364_mp4toannexb %s.ts' % (each, each[:-4])) listalista=lista +('|%s.ts'%(each[:-4])) listalista=lista.replace('kaishiwizhi|','') import subprocess,cv2 #subprocess.call(cmd, shell=True) com = f'ffmpeg -i "concat:%s" -c copy 333333.avi'%lista #com = f'mencoder -forceidx -of lavf -oac copy -ovc copy -o output.avinew 2.avi new 2.avi' print(com) os.system(com)"怎么使用Python和EV剪辑短视频"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
视频
图片
大小
剪辑
文件
位置
调整
不同
格式
画布
画面
背景
路径
输入
内容
动画
参数
图像
宽度
教程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大连软件开发价格正规多少钱
数据库转成文本
手机软件开发语言排行
网络技术2022单招学校
apk服务器地址加密
不能作为网络安全的特征是
网络安全视频防骗全民行
网络技术岗位日志
港股互联网科技股有哪些
数据库锁备份的核心是什么
使数据库变快的操作
软件开发阶段划分
吉安夜那网络技术有限公司
php数据库的增删改查
单细胞身份标志物数据库
罪恶都市手机版怎么换服务器
网络安全采取相关措施
东大人工智能和网络安全培优
如何股票系统交易软件开发
天堂2哪个服务器人比较多
刑侦网络安全科
奉贤区工程软件开发服务价格
嵌入式软件开发理论试题
737fmc性能数据库
宝泉软件开发
维语网络技术公司
个人软件开发额外收入要缴税吗
dnf黑屏正在连接服务器
三大中文数据库
服务器机房有酒