今天要说的是一个高速视频流的采集和传输的问题,我不是研究这一块的,没有使用什么算法,仅仅是兴趣导致我很想搞懂这个问题.

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,我想应该用了吧..

下面是接收端代码:

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实现高速视频传输程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python实现视频的实时传送_基于python实现高速视频传输程序相关推荐

  1. python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现

    从高校校园网运维工作实际出发,论文提出了一种基于 Python 语言+SNMP协议的网络交换机监测系统设计思路与实现方法.整个系统系统采用B/S模式,基于轻量级的web开发框架web.py实现.后端采 ...

  2. python音频实时频谱分析_基于python的音频设计及频谱分析

    74 Internet Technology 互联网 + 技术 一.引言 WAV 是 Microsoft 开发的一种声音文件格式,虽然它支持多种压缩格式,但是它通常被用来保存未压缩的声音数据(PCM ...

  3. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  4. python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx

    湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...

  5. python写安卓app控制蓝牙_基于python实现蓝牙通信代码实例

    这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装和示例 linux下安装 sudo apt ...

  6. 基于python的公众号课堂教学_基于Python的微信公众号数据挖掘分析

    基于Python的微信公众号数据挖掘分析 华南农业大学电子工程学院 王 建 黄宁香 [期刊名称]电子世界 [年(卷),期]2019(000)011 [总页数]3 运用Python网络爬虫技术对某时事类 ...

  7. 用python写脚本筛选原创微博_基于python编写的微博应用

    本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...

  8. python中sample是什么意思_基于Python中random.sample()的替代方案

    python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如: numpy random模块中的choice ...

  9. python扫雷的代码及原理_基于Python实现的扫雷游戏实例代码

    摘要:这篇Python开发技术栏目下的"基于Python实现的扫雷游戏实例代码",介绍的技术点是"Python实现.Python.实例代码.扫雷游戏.扫雷.游戏" ...

  10. python的图书管理项目教程_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

最新文章

  1. unity3d 调用Start 注意
  2. deep learning with python 中文版-Deep Learning with Python
  3. linux系统的学习经验首篇
  4. mysql将一个字段的值根据逗号拆分_mysql中要根据某个逗号分割的字符串关联查询另一张表的数据...
  5. 跟着别人的感觉做网络推广之二
  6. [OI学习笔记]最小生成树之Prim算法
  7. sql2018 ssas_如何使用SQL Server Analysis Services(SSAS)从头开始构建多维数据集
  8. 和 Apple “较上劲”了?Google 解决 Cookie 隐私问题上拒绝“一刀切”
  9. Windows设置共享文件夹,ubuntu访问
  10. [转]windows 2003 开启远程桌面
  11. hdu 1213 “How Many Tables”(并查集基本到优化)
  12. 【Audio】WAV音频文件格式结构解析
  13. matlab绘制图形hold on_Matlab绘图示例
  14. ubuntu 下载 迅雷
  15. Matches UVA - 11375 递推+大数 Ingenuous Cubrency UVA - 11137 递推
  16. GitOps | 一种云原生的持续交付模型
  17. html网页怎么自动返回,返回首页html代码?打开某个特定网页时,网页总是自动跳回主页,是怎?...
  18. 精确算法、启发式算法、元启发式算法及增长方式浅析
  19. 网易云播放失败,请在设置中切换输出设备 解决方案
  20. 【C++】斐波那契凤尾

热门文章

  1. 建议平面设计爱好者要学的软件,和一些CDR常见问题
  2. 中国象棋《棋经论》及象棋布局歌诀,值得研究、细细品味
  3. 安卓系统,启用微信浮窗 session 丢失
  4. Origin C编程 -- 自定义函数按位解读数据列
  5. 51单片机(郭天祥版)——键盘检测原理及应用实现
  6. 51单片机定时器流水灯控制
  7. cso(布谷鸟)算法优化神经网络参数
  8. STM32的延迟函数1us、1ms
  9. 聊天中批判性思维的应用
  10. 树莓派 与 Xbox360手柄 基于pygame 的一次邂逅