python ffmpeg剪辑视频_python利用ffmpeg将一段大视频等份的切成多个小视频段
在剪辑视频的过程中发现部分手机拍摄的视频是带有rotate旋转矫正参数的,一般的opencv脚本剪辑出来的视频是歪的。查询了大量的资料找到一种使用ffmpeg剪辑的方法,将opencv和ffmpeg结合使用可以剪辑目前绝大多数的手机视频。
def cutVideo(path,filename):
video_full_path = path + r'\\' +filename
video_full_path_new = path + r'\\' +'new_'+filename
cap = cv2.VideoCapture(video_full_path)
cap.isOpened()
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
print(width, height)
if cap.isOpened(): # 当成功打开视频时cap.isOpened()返回True,否则返回False
# get方法参数按顺序对应下表(从0开始编号)
rate = cap.get(5) # 帧速率
FrameNumber = int(cap.get(7)) # 视频文件的帧数
duration = FrameNumber / rate # 帧速率/视频总帧数 是时间,除以60之后单位是分钟
len = int(duration)
fps = int(rate)
print(rate, FrameNumber)
if (width > height):
for i in range(0,len):
video_full_path_new = path + r'\\' + str(i) + filename
print(i)
cmd = 'ffmpeg -i {0} -vcodec copy -acodec copy -ss 00:00:0{1} -to 00:00:0{2} {3} -y'.format(video_full_path,str(i),str(i+1),video_full_path_new)
os.system(cmd)
else:
i = 0
while (True):
success, frame = cap.read()
if success:
i += 1
# print('i = ', i)
if (i % fps == 1):
videoWriter = cv2.VideoWriter(path + '/' + str(i) + filename,
cv2.VideoWriter_fourcc('D', 'I', 'V', 'X'), fps,
(int(width), int(height)))
videoWriter.write(frame)
else:
videoWriter.write(frame)
else:
print('end')
break
cap.release()
python ffmpeg剪辑视频_python利用ffmpeg将一段大视频等份的切成多个小视频段相关推荐
- 【FFmpeg】java实现利用ffmpeg视频上传转码同时截取一帧保存为同名图片,并获取视频分辨率
〇.前情提要 完成了视频上传,接下来是给上传的视频保存一张同名的jpg文件在同样文件夹中,并且获取到视频的分辨率. macOS Catalina 10.15.1 ffmpeg version 4.3. ...
- android微信朋友圈视频无法播放,微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?...
微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?最近微信更新,用户可以进行分享自己手机里的视频,这一举措受到很多人的喜欢.那么微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频 ...
- python截取视频_python使用ffmpeg截取视频段
下载ffmpeg的压缩包,直接解压 建议采用python+ffmpeg截取视频段,但是当视频文件路径含中文时出错,中文乱码.Python用subprocess调用乱码问题. 解决方法:视频文件路径编码 ...
- 【音视频】利用ffmpeg实现:音视频的提取,rtmp推流等
目录 可列出电脑的设备 音频+桌面视频,存mp4 录声音 推流到服务器 音频+桌面视频,推流到服务器 音频+笔记本摄像头,推流到服务器 音频+笔记本摄像头,推流到服务器:通过wvp-pro代+AAC ...
- python 视频截取 利用ffmpeg截取MP4视频片段
学python没多久,发现OpenCV做的视频截取出来的视频无声的 水平有限也没搞明白怎么处理,后面用FFmpeg整了个,如学弟.学妹有用到我这个自行百度怎么配置FFmpeg环境配置,配置好再测试代码 ...
- python批量处理视频_Python调用ffmpeg开源视频处理库,批量处理视频
代码示例 # coding=utf-8 import os import subprocess import datetime import json, pprint import re, time ...
- python opencv 录制视频_Python利用opencv实现录制视频
import cv2 import threading #python 多线程操作库 class RecordingThread(threading.Thread): def __init__( ...
- python单词词频字典_python利用多种方式来统计词频(单词个数)
python的思维就是让我们用尽可能少的代码来解决问题.对于词频的统计,就代码层面而言,实现的方式也是有很多种的.之所以单独谈到统计词频这个问题,是因为它在统计和数据挖掘方面经常会用到,尤其是处理分类 ...
- python rsa 公钥解密_python利用rsa库做公钥解密的方法教程
前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...
- python numpy 子数组_Python利用Numpy数组进行数据处理(一)
Numpy数组使你可以将许多种数据处理任务表达为简洁的数组表达式(否则需要编写循环).用数组表达式代替循环的做法,通常被称为矢量化. np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对 ...
最新文章
- mycat是什么_MYCAT学习2
- Nginx深入了解-基础(一)
- 【转】BaseAdapter用法
- java adminlte 使用_AdminLTE2管理后台自定义
- 阿里强化学习入选MIT十大突破 “新技术”
- apb外设怎么分配地址
- winform中32位转64位系统上打开
- Python程序员都会喜欢的6个库
- 【NLP】综述 | 跨语言自然语言处理笔记
- Mobilenet-ssd 目标检测
- Spring框架学习记录二:装配Bean
- window计算机桌面的组成,windows的桌面包括哪些组成部分
- 数学建模基础理论【二】(定积分)
- 红帽linux5.4安装教程,红帽企业Linux5.4下ORACLE安装步骤(推荐).pdf
- 那些年常见的前端bug (持续更新)
- 串口发送数据,只接收到00的原因之一
- JAVA_数组的截取
- 机刷——App推广作弊内幕系列
- 【笔记】拜占庭将军问题与共识算法
- Android实现快速发送电子邮件
热门文章
- laspy读取laz点云文件--TypeError: a bytes-like object is required, not ‘FakeMmap‘
- 《孙子兵法》【谋攻第三】
- Python 进阶之路 (一) List 进阶方法汇总,新年快乐!
- java中有关自增(++)自减(--)
- 微信即时通信原理_一对一直播交友源码实现即时通讯功能的解决方案
- 64位VBA免注册调用32位COM DLL的问题
- keras 香草编码器_如何使用香草javascript制作简单的游戏循环
- 【嵌入式学习——知识点总结】几种排序算法
- 量子学习及思考7-量子基本数学知识
- Linux给环境变量取别名之alias