录制一段视频保存

import cv2
# 创建一个视频窗口
cv2.namedWindow('Video')
# cv2.VideoCapture(0)打开摄像头
video_capture = cv2.VideoCapture(0)
video_writer = cv2.VideoWriter('test.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'),video_capture.get(cv2.CAP_PROP_FPS),(int(video_capture.get(cv2.CAP_PROP_FRAME_WIDTH)),int(video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT))))
# cv2.VideoWriter 分别传入的参数是路径 格式,帧率,视频尺寸
success,frame = video_capture.read()
# 成功打开摄像头 直到按esc退出保存视频
while success and not cv2.waitKey(1) == 27:blur_frame = cv2.GaussianBlur(frame[:,::-1], (3,3),0)video_writer.write(blur_frame)cv2.imshow("Video", blur_frame)success, frame = video_capture.read()
cv2.destroyWindow('Video')
video_capture.release()if __name__ == '__main__':pass

下面是录制带有声音的视频

import wave
from pyaudio import PyAudio,paInt16
from PIL import ImageGrab
import numpy as np
import cv2
from moviepy.editor import *
from moviepy.audio.fx import all
import timeCHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
WAVE_OUTPUT_FILENAME = "output.wav"p = pyaudio.PyAudio()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
audio_record_flag = True
def callback(in_data, frame_count, time_info, status):wf.writeframes(in_data)if audio_record_flag:return (in_data, pyaudio.paContinue)else:return (in_data, pyaudio.paComplete)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),input=True,stream_callback=callback)
image = ImageGrab.grab()#获得当前屏幕
width = image.size[0]
height = image.size[1]
print("width:", width, "height:", height)
print("image mode:",image.mode)
k=np.zeros((width,height),np.uint8)fourcc = cv2.VideoWriter_fourcc(*'XVID')#编码格式
video = cv2.VideoWriter('test.mp4', fourcc, 9.5, (width, height))
#经实际测试,单线程下最高帧率为10帧/秒,且会变动,因此选择9.5帧/秒
#若设置帧率与实际帧率不一致,会导致视频时间与音频时间不一致print("video recording!!!!!")
stream.start_stream()
print("audio recording!!!!!")
record_count = 0
while True:img_rgb = ImageGrab.grab()img_bgr=cv2.cvtColor(np.array(img_rgb), cv2.COLOR_RGB2BGR)#转为opencv的BGR格式video.write(img_bgr)record_count += 1if(record_count > 200):breakprint(record_count, time.time())audio_record_flag = False
while stream.is_active():time.sleep(1)stream.stop_stream()
stream.close()
wf.close()
p.terminate()
print("audio recording done!!!!!")video.release()
cv2.destroyAllWindows()
print("video recording done!!!!!")print("video audio merge!!!!!")
audioclip = AudioFileClip("output.wav")
videoclip = VideoFileClip("test.mp4")
videoclip2 = videoclip.set_audio(audioclip)
video = CompositeVideoClip([videoclip2])
video.write_videofile("test2.mp4",codec='mpeg4')
————————————————
版权声明:本文为CSDN博主「luke-skyworker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhaoyun_zzz/java/article/details/84341801

opencv-python视频处理之录制视频相关推荐

  1. python 实现指定时间段录制视频

    python 实现指定时间段录制视频 一.pyaudio: 二.cv2: 指定时间录制: 一.pyaudio: windows下使用 python -m pip install pyaudio 安装 ...

  2. openCV + python实现从摄像头获取视频后,以镜像/水平翻转输出

    opencv + python实现从摄像头获取视频后,以镜像/水平翻转输出 笔者的配置如下: opencv 4.2.0 python 3.7.6 如图,处理前的 摄像头获取并输出的都是翻转后的视频 处 ...

  3. Android音视频之MediaRecorder录制视频

    1 MediaRecorder 录制视频步骤 这篇文章介绍了Android录音MediaRecorder使用和SoundPool的使用 主要讲解了音频的录制和播放,这篇AudioRecord和Audi ...

  4. 《微课实战:Camtasia Studio入门精要》——第2章 录制视频 2.1 录制视频基本常识...

    本节书摘来自异步社区<微课实战:Camtasia Studio入门精要>一书中的第2章,第2.1节,作者 于化龙,沈婷婷,郝雨,更多章节内容可以访问云栖社区"异步社区" ...

  5. 短视频开发,录制视频添加背景音乐功能实现

    短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...

  6. 用屏幕录像专家录制视频:(录制视频大小尽量小)

    由于有时候要上传一些视频到git中,但是git中上传文件大小不能超过100M,所以视频文件大小就要小于100M 操作如下: 1.先设置好: 2.点击开始录制: 3.点击快捷键F2终止录制视频,F3暂停 ...

  7. 多媒体——视频——使用摄像机录制视频

    通过系统自带的摄像机可以很方便地录制视频,只要指定摄像动作为MediaStore.ACTION_VIDEO_CAPTURE即可. 当然,需要事先设定下列的录像参数: 1.MediaStore.EXTR ...

  8. 如何录制视频?快速录制视频方法介绍:

    你是否想要录制软件操作流程给朋友,想要录制游戏视频分享给网友.现在网上的视频录制软件很多,想要找到一款适合自己的录屏软件确实不容易. 别担心,今天小编就给大家分享两种快速录制视频有什么方法?相信对您会 ...

  9. android 录制视频代码,Android录制视频

    1.系统相机 录制视频,最简单的当然是调用系统的相机,可以使用如下参数,配置系统相机: MediaStore.EXTRA_OUTPUT:设置媒体文件的保存路径. MediaStore.EXTRA_VI ...

  10. 使用OpenCV+Python构建运动热图视频

    OpenCV是一个强大的图像和视频处理库,在这篇文章中,我将创建一个运动热图,用于检测运动.以及物体或人的流动方向,在投影公共区域时可以对建筑师有所帮助. 简介 OpenCV,或(开源计算机视觉)是英 ...

最新文章

  1. Git使用笔记(一)
  2. pandas使用pd.concat横向合并多个dataframe实战:多个dataframe的横向表拼接(行对齐)、多个dataframe的横向表拼接(指定join参数、交集还是并集)
  3. 过滤一批数据_手把手教你学numpy,从此数据处理不再慌【三】
  4. 概率分布之间的距离度量以及python实现(三)
  5. JBOSS内存溢出处理
  6. 讯闪菜单密码去除方法
  7. linux的常用操作——查看和修改文件权限
  8. 搭建bitwarden_Docker轻松部署Bitwarden私有密码管理系统服务
  9. 山寨一个PetShop(Task002)——数据类库Model
  10. python中的序列类型数据结构元素的切片_第四章 Python字符串以及(split,rsplit,replace,strip.....)...
  11. 智能门禁(6)---调用face++实现人脸检测
  12. ArcMap 导入 wrl_ai文件导入c4d没反应怎么办? c4d导入ai源文件失败的原因分析_Illustrator教程_平面设计...
  13. 成员方法的使用及其调用
  14. 基于mysql的全文索引
  15. 方法代码ASP.NET MVC如何使用Ajax的辅助方法
  16. Listary一款不只是程序员需要的软件
  17. IIS网站中下载.bat文件
  18. python arp断网攻击_ARP断网攻击的原理与解决方法讲解 | 小马激活官网
  19. 微信消息能在服务器上彻底清除,快速彻底删除微信消息的方法如此简单 很多人都用错了方法!...
  20. 垃圾收集器总结--CMS垃圾收集器

热门文章

  1. 物联网平台 源码_国内首个智慧交通物联网平台发布
  2. linux cron指定用户,Centos下crontab指定执行用户
  3. java包装类和基本类型谁先谁后_你知道Java中基本类型和包装类的区别吗
  4. 队列判空_数据结构与算法——队列的C语言实现
  5. 中间件应用程序错误 修复方案_Qtum Neutron:新一代区块链虚拟机中间件会给Qtum带来哪些新功能?...
  6. 新乡职业学院对口计算机分数线,新乡职业技术学院2020年录取分数线(附2017-2020年分数线)...
  7. python计算学习_跟老齐学Python之用Python计算
  8. 百融金服榕树_百融金服榕树成为拉动新金融行业增长的主力军
  9. 华中科技大学计算机学院的班级,华中科技大学计算机学院数据结构(计算机专业)...
  10. 非线性方程求根的牛顿法