利用JAVA实现局域网的跨平台实时视频传输_吴良斌1
基于JAVA实现的局域网跨平台实时视频传输系统设计 本文讨论了基于JAVA实现的局域网跨平台实时视频传输系统设计,旨在解决当前视频传输系统存在的问题,如可扩展性差、格式不统一等。通过分析局域网中视频传输的特点和模型,并针对不同的平台,提出了一种通用的实时视频传输解决方案,即在SUN公司提出的JMF多媒体框架基础上进行扩展,实现一个与平台无关的基于RTP/RTCP协议的流式媒体传输模型的系统设计。 一、视频传输系统的设计 视频传输系统主要包括五个功能模块:视频采集和视频显示、编码和解码工具、视频压缩和视频解压、传输协议和传输网络。视频采集设备负责将视频信息输入计算机,而视频显示负责播放视频信息。编码软件负责将视频采集设备传送过来的视频信号编码成流媒体格式,而解码软件与之相反负责将媒体数字信号转化成终端可识别的信息。视频媒体数据量巨大必须将编码后的视频媒体数据进行高效的压缩,然后将压缩后的数据在网络上传输。其相应的解压模块负责将数据还原成为原来的流媒体格式。 二、基于JMF架构实现RTP/RTCP传输模型 JMF(JavaMediaFramework)是SUN公司提出的Java媒体架构,它是对应Java2平台标准版(J2SE)的一种可选用的应用编程接口(API)。JMF的源代码通过SCSL(Sun社团源代码许可模式)发布。本文实现视频传输系统的结构及其有关的代码如下: 2.1 结构介绍 服务器接受多台客户端连接,传送客户端信息。VideoServer.java:定义服务器Socket和输入输出流。ServerFrame.java:定义服务器界面。 客户端通过服务器,互相浏览视频、收听音频和文字交流。RTPTransmit.java:定义RTP视音频数据传送。RTPReceive.java:定义RTP视音频数据接收。VFWAuto.java:调用JMF视音频设备接口。Client.java:定义客户端Socket和控制RTP传输。MainFrame.java:定义客户端主界面和功能。 2.2 关键组件的实现 2.2.1 视频、音频设备捕获 在“系统设置”窗口中调用JMF的设备搜索接口,调用代码如下: VFWAuto.java部分代码: public VFWAuto(){ Vector devices = (Vector)CaptureDeviceManager.getDeviceList(null).clone(); Enumeration enum1 = devices.elements(); while(enum1.hasMoreElements()){ CaptureDeviceInfo info = (CaptureDeviceInfo)enum1.nextElement(); System.out.println(info.getName()); } } 2.2.2 RTP/RTCP协议实现 RTP/RTCP协议是由IETF为视音频的实时传输而设计的传输协议。本文采用RTP/RTCP协议来实现视频传输,确保视频传输的实时性和可靠性。 本文提出了一种基于JAVA实现的局域网跨平台实时视频传输系统设计,旨在解决当前视频传输系统存在的问题,提高视频传输的效率和可靠性。
- 粉丝: 37
- 资源: 324
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 事后修复了 Unicode 文本中的乱码和其他故障 .zip
- 了解 Python 的 A 到 Z.zip
- 为 Pythonista iOS 应用编写的 Python 脚本集合.zip
- PREEvision工具在汽车电子与电气系统设计中的全方位支持
- 汽车制造:ECU软件刷写技术及优化方法提升主机厂生产效率
- stm32f1x必要启动文件.7z
- 三次贝塞尔最小二乘拟-Cubic Bezier Least Square Fitting
- 基因频率的稳定性和遗传特性在自然选择下仿真
- 一本关于 numpy 矢量化技术的开放获取书籍,Nicolas P. Rougier,2017 年.zip
- Office2021 命令式下载和安装工具