• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > videocapture库制作python视频高速传输程序

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python videocapture,videocapture,videocapture类,videocapture摄像头,opencv videocapture等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1,首先是视频数据[摄像头图像]的采集,通常可以使用vfw在vc或者vb下实现,这个库我用的不好,所以一直不怎么会用.现在我们用到的是python的videocapture库,这个库用起来很简单,如下:

这样,你就得到了一张图片.
当然,要实现比较高速的采集,每次都要保存图片是不大可能的,这样弄下来每次采集一张图片已经接近1秒钟,这个速度我们是无法忍受的.
更好的解决方式是直接这样: im = cam.getImage(),返回的是一个Image对象,是一个内存块,对它操作就快速多了.
2,如何传输图片?我不知道pplive这种视频是怎么传输的,我的想法很简单,每次传送一幅图片.
在本程序中,每次传送的RGB图像的大小为 160*120.这样,需要的数据量为:d = 160*120*3 = 56.25 kB
我选择80000B.
下面是发送端代码:

3,如何实时显示图片?
我使用了pygame作为实时图像显示界面,因为pygame是经过优化的高速图形库,不知道有没有使用directshow,我想应该用了吧..
关于pygame请参考 www.pygame.org
下面是接收端代码:

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()
</div>

程序终于完成了,测试一下效果怎么样把,为了方便,我把客户端和服务端都设成了本机,端口为1234.
运行程序,哇,简直不可思议,最高竟然达到230fps!(右边的终端)


</div>

您可能想查找下面的文章:

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

相关文章

  • python定时检查启动某个exe程序适合检测exe是否挂了
  • 跟老齐学Python之再深点,更懂list
  • Python自动化部署工具Fabric的简单上手指南
  • python对json的相关操作实例详解
  • Python的SQLalchemy模块连接与操作MySQL的基础示例
  • python自动zip压缩目录的方法
  • Python检测生僻字的实现方法
  • Python随手笔记之标准类型内建函数
  • python中set常用操作汇总
  • Python通过RabbitMQ服务器实现交换机功能的实例教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python正常时间和unix时间戳相互转换的方法
    • Python通过解析网页实现看报程序的方法
    • 10款最好的Web开发的 Python 框架
    • python实现的登陆Discuz!论坛通用代码分享
    • 使用Python的PEAK来适配协议的教程
    • python使用BeautifulSoup分页网页中超链接的方法
    • python转换字符串为摩尔斯电码的方法
    • 使用beaker让Facebook的Bottle框架支持session功能
    • Python正则表达式教程之二:捕获篇
    • python base64 decode incorrect padding错误解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有