基于python实现高速视频传输程序


Posted in Python onMay 05, 2019

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

    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实现高速视频传输程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python del()函数用法
Mar 24 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
Python实现竖排打印传单手机号码易撕条
Mar 16 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
自己编程中遇到的Python错误和解决方法汇总整理
Jun 03 Python
Python中Threading用法详解
Dec 27 Python
浅谈python之新式类
Aug 12 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python取余运算符知识点详解
Jun 27 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Python搭建Keras CNN模型破解网站验证码的实现
Apr 07 Python
Python远程视频监控程序的实例代码
May 05 #Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 #Python
20行python代码实现人脸识别
May 05 #Python
使用python实现mqtt的发布和订阅
May 05 #Python
Python向excel中写入数据的方法
May 05 #Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 #Python
python使用MQTT给硬件传输图片的实现方法
May 05 #Python
You might like
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
vue实现动态数据绑定
2017/04/28 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
Vue基本指令实例图文讲解
2021/02/25 Vue.js
Python中用Spark模块的使用教程
2015/04/13 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
六行python代码的爱心曲线详解
2019/05/17 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Django异步任务线程池实现原理
2019/12/17 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
python中return不返回值的问题解析
2020/07/22 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
军人违纪检讨书
2014/02/04 职场文书
影子教师研修方案
2014/06/14 职场文书
关于运动会广播稿50字
2014/10/18 职场文书