videocapture库制作python视频高速传输程序


Posted in Python onDecember 23, 2013

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!(右边的终端)

videocapture库制作python视频高速传输程序

Python 相关文章推荐
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
Pycharm远程调试openstack的方法
Nov 21 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
详解python中sort排序使用
Mar 23 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
python如何保证输入键入数字的方法
Aug 23 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
天翼开放平台免费短信验证码接口使用实例
Dec 18 #Python
python模拟登录百度贴吧(百度贴吧登录)实例
Dec 18 #Python
python抓取京东商城手机列表url实例代码
Dec 18 #Python
python获取糗百图片代码实例
Dec 18 #Python
python算法学习之计数排序实例
Dec 18 #Python
python算法学习之基数排序实例
Dec 18 #Python
python算法学习之桶排序算法实例(分块排序)
Dec 18 #Python
You might like
德生S2000电路分析
2021/03/02 无线电
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
js实现继承的5种方式
2015/12/01 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
python实现图片批量剪切示例
2014/03/25 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python和Go语言的区别总结
2019/02/20 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
配件采购员岗位职责
2013/12/03 职场文书
天地会口号
2014/06/17 职场文书
骨干教师事迹材料
2014/12/17 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
python自动化测试通过日志3分钟定位bug
2021/11/20 Python