91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于python實現高速視頻傳輸程序

發布時間:2020-09-07 10:00:12 來源:腳本之家 閱讀:184 作者:詹姆斯 欄目:開發技術

今天要說的是一個高速視頻流的采集和傳輸的問題,我不是研究這一塊的,沒有使用什么算法,僅僅是興趣導致我很想搞懂這個問題.

    1,首先是視頻數據[攝像頭圖像]的采集,通常可以使用vfw在vc或者vb下實現,這個庫我用的不好,所以一直不怎么會用.現在我們用到的是python的videocapture庫,這個庫用起來很簡單,如下:

from VideoCapture import Device
cam = Device()
cam.setResolution(320,240)  #設置顯示分辨率
cam.saveSnapshot('demo.jpg') #抓取并保存圖片

  這樣,你就得到了一張圖片.

    當然,要實現比較高速的采集,每次都要保存圖片是不大可能的,這樣弄下來每次采集一張圖片已經接近1秒鐘,這個速度我們是無法忍受的.

更好的解決方式是直接這樣: im = cam.getImage(),返回的是一個Image對象,是一個內存塊,對它操作就快速多了.

    2,如何傳輸圖片?我不知道pplive這種視頻是怎么傳輸的,我的想法很簡單,每次傳送一幅圖片.

在本程序中,每次傳送的RGB圖像的大小為 160*120.這樣,需要的數據量為:

       d = 160*120*3 = 56.25 kB

    我選擇80000B.

    下面是發送端代碼:

import socket
import Image
from VideoCapture import Device
cam = Device()
cam.setResolution(320,240)
clisocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
  im = cam.getImage()
  im = im.resize((160,120))
  da = im.tostring()
  clisocket.sendto(da, ("127.0.0.1", 1234))
s.close()

    3,如何實時顯示圖片?

    我使用了pygame作為實時圖像顯示界面,因為pygame是經過優化的高速圖形庫,不知道有沒有使用directshow,我想應該用了吧..

    關于pygame請參考 www.pygame.org

    下面是接收端代碼:   

import socket
import Image
import os,sys,pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((160,120))
pygame.display.set_caption("web cam")
pygame.display.flip()
svrsocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
svrsocket.bind(("127.0.0.1", 1234))
clock = pygame.time.Clock()  #計算幀速
while 1:
  data, address = svrsocket.recvfrom(80000)
  camshot = pygame.image.frombuffer(data, (160,120), "RGB")
  for event in pygame.event.get():
      if event.type == pygame.QUIT: sys.exit()
  screen.blit(camshot, (0,0))
  pygame.display.update() 
  print clock.get_fps()   #在終端打印幀速
  clock.tick()

    程序終于完成了,測試一下效果怎么樣把,為了方便,我把客戶端和服務端都設成了本機,端口為1234.

    運行程序,哇,簡直不可思議,最高竟然達到230fps!(右邊的終端)

總結

以上所述是小編給大家介紹的基于python實現高速視頻傳輸程序,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄大仙区| 会泽县| 两当县| 肥西县| 淳安县| 松阳县| 元氏县| 罗城| 中山市| 枣阳市| 北京市| 郯城县| 扎赉特旗| 叙永县| 新河县| 原阳县| 隆尧县| 明溪县| 荥经县| 大厂| 阿拉善左旗| 铅山县| 龙陵县| 瑞丽市| 肃南| 建德市| 托克逊县| 金华市| 凉城县| 方正县| 北京市| 申扎县| 台山市| 武强县| 富宁县| 高安市| 台州市| 高台县| 沂水县| 青铜峡市| 凤山县|