首页 运维 网络学院 查看内容

Python实现简易局域网视频聊天工具

2016-11-3 11:42 6331 2

摘要: 项目简介:使用Python基于OpenCV和PyAudio实现的局域网内视频聊天工具,支持IPv6。优点是校园网/IPv6下不走流量。本项目教程由Forec发布在实验楼,完整教程及在线练习地址:Python实现简易局域网视频聊天工具一、课 ...

项目简介:使用Python基于OpenCV和PyAudio实现的局域网内视频聊天工具,支持IPv6。优点是校园网/IPv6下不走流量。

本项目教程由Forec发布在实验楼,完整教程及在线练习地址:Python实现简易局域网视频聊天工具


一、课程介绍

1. 课程来源

使用的操作系统为 Ubuntu 14.04,OpenCV 版本为OpenCV 2.4.13.1,你可以在这里查看该版本 OpenCV 的文档。这个工具最初是为了通过IPv6节省聊天工具使用的流量而开发的。

2. 内容简介

  • 项目将实现简易的视频通信工具
  • 在视频通信的基础上加入语音
  • 用户可以选择通信的质量,即画质、停顿等参数
  • 支持IPv6

3. 知识点

本课程项目完成过程中将学习:

  • Python 基于 OpenCV 对摄像头信息的捕获和压缩
  • Python 关于 线程 和 socket 通信的一些基础技巧
  • Python 基于 PyAudio 对语音信息的捕获和压缩

其中将重点介绍 socket 传输过程中对数据的压缩和处理。

4. 运行效果图

下方截图测试的是本机和本机的视频聊天,如果你有条件在同一局域网内的两台机器上实验,则可以将程序部署在两台机器上,并相互连接观察效果。


通过在某高校校园网内验证,程序可以保证长时间顺畅通话,偶尔会出现网络质量较差导致的短暂卡顿,不影响实际视频通话效果。

二、实验环境

  • 本实验需要先在实验平台上安装 OpenCV ,需下载依赖的库、源代码并编译安装。安装过程建议按照教程给出的步骤,或者你可以参考官方文档中 Linux 环境下的安装步骤,但有些选项需要变更。安装过程所需时间会比较长,这期间你可以先阅读接下来的教程,在大致了解代码原理后再亲自编写尝试。

  • 我提供了一个编译好的2.4.13-binary.tar.gz包,完整的安装步骤可以在详细教程中查看,检验配置是否成功。

  • $ python
    >>> import cv2
    >>> cv2.__version__
    '2.4.13'
    

三、实验原理

实验实现了简易的视频通信工具,基于 OpenCV 和 PyAudio,使用 TCP 协议通信,通信双方建立双向 CS 连接,双方均维护一个客户端和一个服务器端。在捕获视频信息后,根据用户指定的参数对画面做压缩并传输。

四、实验步骤

本项目的完整代码、详细步骤,可以在实验楼查看并在线完成:Python实现简易局域网视频聊天工具

主要实现步骤:

1.实现双向 C/S 连接

2.实现摄像头数据流捕获

3.发送捕获到的数据到服务器

4.视频缩放和数据压缩

5.加入音频的捕获和传输

6.编写程序入口 main.py

7.运行测试

项目代码下载地址:Python实现简易局域网视频聊天工具 (在完整文档中)

Python学习路径:Python研发工程师

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

返回顶部