Python之OpenCV把一个视频切分成多个等长视频

使用pychar软件编写求大神操刀... 使用pychar软件编写求大神操刀 展开
 我来答
一时春花香
2019-01-14
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
import cv2
cap = cv2.VideoCapture('E:/极乐净土.mp4')#导入路径
j=1
i=1
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps =cap.get(cv2.CAP_PROP_FPS)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter('E:/新建文件夹 (3)/' + str(j) + '.avi', fourcc,fps, size)#输出路径都是可以自己改的
while (True):
ret, frame = cap.read() # 捕获一帧图像
i = i + 1
out.write(frame) # 保存帧
if (i % 200== 0): # 每n帧切割为一个新的视频
j = j + 1
out = cv2.VideoWriter('E:/新建文件夹 (3)/' + str(j) + '.avi', fourcc, fps, size)#路径都是可以自己改的
cv2.imshow('frame', frame) # 显示帧
# 判断按键,如果按键为q,退出循环
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
韦恩uu
2019-03-16
知道答主
回答量:3
采纳率:0%
帮助的人:2336
展开全部
import cv2
import time
# .time()方法用来记录当前时间
start_time = time.time()
# 导入一个本地视频赋给cap
cap = cv2.VideoCapture("D:/UserData/Desktop/ad.mp4")
# 获取视频的帧速率fps
fps = int(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('D','I','V','X')
# 获取视频的总帧数
frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
# 10秒的总帧率
framss = 10*fps

print('视频详细信息:\n\tfps:',fps,'\n\t宽、高:',size,'\n\t总帧数:',frames,'\n\t解码器:',fourcc)

# i用来计数每一帧视频,n用来计数视频个数
i = 0
n = 1
print('写入第%d个视频中...'%n)
# 创建一个视频对象,并依次设置输出路径下的名称、解码器、每秒帧率、视频宽高
out = cv2.VideoWriter('D:/UserData/Desktop/sp_'+str(n)+'.avi',fourcc,fps,size)

while True:
# .read()方法将会返回一个布尔值和一组矩阵
ret,frame = cap.read()
if ret:
i = i + 1
if(i%framss == 0):
n = n + 1
print('写入第%d个视频中...'%n)
out.release()
out = cv2.VideoWriter('D:/UserData/Desktop/sp_' + str(n) + '.avi', fourcc, fps, size)
out.write(frame)
else:
time = time.time() - start_time
print('...结束,本次处理输出共',n,'个视频,耗时约%0.2fs'%time)
break
# 释放内存资源
cap.release()
out.release()
cv2.destroyAllWindows()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慕桖咏思0Ij
2019-01-11 · TA获得超过536个赞
知道小有建树答主
回答量:172
采纳率:36%
帮助的人:46.9万
展开全部
import cv2
import os

# 先导入openCV
# 将一个长的视频缩短,按照比例缩短,只保存其中的一部分
# 如下面代码就是将一个长视频每20秒取5秒,合并成一个短视频

cap = cv2.VideoCapture('myvideo.avi')
if not cap.isOpened():
print('video is not opened')
else:
# 每秒25帧
num = 0
# 取5秒
needTime = 125
# 每20秒
timeSpace = 500
# 获取视频帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# AVI格式编码输出XVID
videoWriter = cv2.VideoWriter('result//resultVideo_2.avi',cv2.VideoWriter_fourcc('X','V','I','D'),fps,frameSize=(320,288))
while(1):
success,frame = cap.read()
if (num%timeSpace <= needTime):
videoWriter.write(frame)
print('write'+ str(num))
num = num + 1
if not success:
print('finished')
break
if cv2.waitKey(100) & 0xFF == ord('q'):
break
cap.release()
追问

是不是借鉴的这里啊,大兄弟,你语文是体育老师教的吗,理解能力这么差,没看懂我发的是什么问题,你要借鉴的话找个像样的啊标题你都看不清???你咋不找这个啊:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友190d2d3
2019-01-11 · 贡献了超过227个回答
知道答主
回答量:227
采纳率:0%
帮助的人:15.5万
展开全部
时候睡吧宝贝是不是
追问
请把舌头屡直了在说话,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式