python 带声音屏幕录制
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python 带声音屏幕录制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                python 帶聲音的屏幕錄制
import pyaudio import wave from PIL import ImageGrab import cv2 import threading import time from numpy import array from moviepy.editor import * import osclass PyRecord:def __init__(self, file_path="test"):self.allow_record = Trueself.file_path = file_pathdef record_audio(self):# 如無法正常錄音 請啟用計算機的"立體聲混音"輸入設備CHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 2RATE = 11025p = pyaudio.PyAudio()stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK,)wf = wave.open(self.file_path + ".wav", "wb")wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)while self.allow_record:data = stream.read(CHUNK)wf.writeframes(data)stream.stop_stream()stream.close()p.terminate()wf.close()def record_screen(self):im = ImageGrab.grab()video = cv2.VideoWriter(self.file_path + ".avi", cv2.VideoWriter_fourcc(*"XVID"), 10, im.size)while self.allow_record:im = ImageGrab.grab()im = cv2.cvtColor(array(im), cv2.COLOR_RGB2BGR)video.write(im)video.release()def compose_file(self):print("合并視頻&音頻文件")audio = AudioFileClip(self.file_path + ".wav")video = VideoFileClip(self.file_path + ".avi")ratio = audio.duration / video.durationvideo = video.fl_time(lambda t: t / ratio, apply_to=["video"]).set_end(audio.duration)video = video.set_audio(audio)video = video.volumex(5)video.write_videofile(self.file_path + "_out.avi", codec="libx264", fps=10, logger=None)video.close()def remove_temp_file(self):print("刪除緩存文件")os.remove(self.file_path + ".wav")os.remove(self.file_path + ".avi")def stop(self):print("停止錄制")self.allow_record = Falsetime.sleep(1)self.compose_file()self.remove_temp_file()def run(self):t = threading.Thread(target=self.record_screen)t1 = threading.Thread(target=self.record_audio)t.start()t1.start()print("開始錄制")pr = PyRecord() pr.run() time.sleep(10) pr.stop()總結
以上是生活随笔為你收集整理的python 带声音屏幕录制的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 影像裁剪及数据扩充(针对DOTAv1.5
- 下一篇: elasticsearch(ES)日志迁
