opencv+ffmpeg 實現(xiàn)屏幕錄制

這是一個被放棄的功能代碼蚓土,原因是由于在轉(zhuǎn)碼的時候會有時間庞溜。opencv在抓取屏幕后視頻編碼后過大的問題,使用了ffmpeg來實現(xiàn)二次的轉(zhuǎn)碼丛晦。調(diào)用了命令行,轉(zhuǎn)碼的時間是這個項目無法接受的提陶,所以決定要用C++去重新寫一次了烫沙。在這里留一個這段代碼的墓地。

  • 代碼如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import ImageGrab
import numpy as np
import cv2
import os
import times
import subprocess

# there ae  path
original_path = r''
output_path = r''

class ScreenRecord():
    """ there are some coding if you don't care the performance """]
    def __init__(self):
        self.startControl = False
        time_now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtim(time.time()))
        # because the file name should not be same, so we should change it
        self.original_file = original_path + time_now + r'.mov'
        self.output_file = output_path + time_now + r'.mp4'

    def record(self):
        # the core code for recording using opencv pillow and ffmpeg
        try:
            # I don't find a better way to stop it
            print ("Ctrl + c to stop record")
            screen = ImageGrab.grab()
            length, width = screen.size
            video_decode_style = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
            video = cv2.VideoWriter(self.original_file, video_decode_style, 12, (length, width), True)
            while self.startControl == False:
                im = ImageGrab.grab()
                imm = cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)
                video.write(imm)
        except KeyboardInterrupt:
            # release the buff
            video.release()
            cv2.destroyAllwindows()
            # ffmpeg tanslate the file
            command('ffmpeg.exe -i %s -b:v 400k -s 960x540 %s' % (self.original_file, self.output_file))
            subprocess.call(commmand)
            # if file is exsits, we will del it
            if os.path.exists(self.original_file):
                os.remove(self.original_file)
            print ("finshed")


    def start(self):
        self.record()

if __name__ == '__main__':
    ScreenRecord().start()

  • 需要下載ffmpeg 并將bin/ffmpeg 放到文件的目錄夾下面
  • 在Windows環(huán)境可以運行
  • 可以使用pyinstaller構(gòu)建Windows 環(huán)境下的可執(zhí)行文件
  • 在完成后會有一段時間的轉(zhuǎn)碼時間
  • C++ 可能會復(fù)雜點隙笆,但是有windows系統(tǒng)的API可以調(diào)用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锌蓄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子撑柔,更是在濱河造成了極大的恐慌瘸爽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铅忿,死亡現(xiàn)場離奇詭異剪决,居然都是意外死亡,警方通過查閱死者的電腦和手機檀训,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門柑潦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人峻凫,你說我怎么就攤上這事渗鬼。” “怎么了荧琼?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵乍钻,是天一觀的道長。 經(jīng)常有香客問我铭腕,道長银择,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任累舷,我火速辦了婚禮浩考,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘被盈。我一直安慰自己析孽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布只怎。 她就那樣靜靜地躺著袜瞬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪身堡。 梳的紋絲不亂的頭發(fā)上邓尤,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼汞扎。 笑死季稳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澈魄。 我是一名探鬼主播景鼠,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痹扇!你這毒婦竟也來了铛漓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鲫构,失蹤者是張志新(化名)和其女友劉穎票渠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芬迄,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡问顷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了禀梳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杜窄。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖算途,靈堂內(nèi)的尸體忽然破棺而出塞耕,到底是詐尸還是另有隱情,我是刑警寧澤嘴瓤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布扫外,位于F島的核電站,受9級特大地震影響廓脆,放射性物質(zhì)發(fā)生泄漏筛谚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一停忿、第九天 我趴在偏房一處隱蔽的房頂上張望驾讲。 院中可真熱鬧,春花似錦席赂、人聲如沸吮铭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谓晌。三九已至,卻和暖如春癞揉,著一層夾襖步出監(jiān)牢的瞬間纸肉,已是汗流浹背溺欧。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毁靶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓逊移,卻偏偏與公主長得像预吆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胳泉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1拐叉、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,981評論 3 119
  • 2018年最潮流的網(wǎng)賺項目店鋪淘客的新玩法分銷模式最先進的技術(shù) 我們應(yīng)該如何解決店鋪的違規(guī)售假乃至封店的問題呢? ...
    尛青蛙閱讀 227評論 0 0
  • 我在前 你在后 我們孤獨的牽著手 在這人間四月天
    水底的黑色瓶蓋閱讀 177評論 0 0
  • 王朝盛世夜北京扇商, 闌珊燈火月照明凤瘦。 華夏千秋定基業(yè), 國泰家安君圣明案铺。柳 2018.5.30
    逸海飄云閱讀 615評論 8 24
  • 下課了蔬芥,施嘉琪剛拿出象棋。坐在他前后的我和陳星睿不約而同地用目光“殺”向了那一盤象棋控汉,又不約而同地說:“施...
    徐一軒_7bec閱讀 232評論 1 0