一 相关技术说明
1 概述
1.1通用直播总体架构
Java在用于视频开发时主要采用的技术框架是FFmpeg和OpenCV。数据库和其他的功能实现可以使用Java Web的相关技术就可以实现。
FFmpeg主要有两种网络传输协议;RTSP、RTMP
RTSP;实时流传输协议,是TCP/IP协议体系中的一个应用层协议.RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。
RTMP;实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。
从上面的简单描述可以看出,这两种协议完全符合808和809协议的。
1.2 视频直播流程
2 具体实现方案
2.1 图像和声音同步流程
2.2 框架作用说明
OpenCV;
- 内置数据结构和输入/输出(In-build data structures and input/output)
关于OpenCV的好处之一就是它提供了许多内置的用于图像处理和计算机视觉相关操作的基础元素。如果你需要通过scratch写入某些内容,你将不得不定义一些东西,比如图像、点、角度等等,这些几乎是任何计算机视觉算法的基础。OpenCV提供了这些开箱即用的基础数据结构,它们都包含在core模块中。另外一个好处是,这些数据结构都已经针对速度和内存做了优化,因此,你不用担心实现细节。
imgcodecs模块用于处理读取和写入图像文件(image file)。
-
图像处理操作(Image processing operations)
-
构建图形用户界面(Build GUI)
-
视频分析(Video analysis)
-
3D重建(3D reconstruction)
-
特征提取(Feature extraction)
-
目标检测(Object detection)
-
机器学习(Machine learning)
-
计算摄影(Computational photography)
-
形状分析(Shape analysis)
-
光流算法(Optical flow algorithms)
-
人脸和目标识别(Face and object recognition)
-
表面匹配(Surface matching)
-
文本检测和识别(Text detection and recognition)
FFmpeg;
1、AVUtil: 核心工具库
2、AVFormat:提供了音视频容器格式的封装和解析以及所支持的协议文件格式和协议库
3、AVCodec: 编解码库
4、AVFilter: 音视频滤镜库 如视频加水印、音频变声
5、AVDevice: 输入输出设备库