omnimeeting配置全过程

本文介绍了如何使用omnimeeting搭建跨平台流媒体服务器,涉及Live555、ffmpeg、opencv等多个组件。在配置过程中,详细阐述了编译Live555的步骤,包括修改配置文件、添加环境变量等,并提到了与OpenCV、wxWidgets、Cg、OpenGL和DirectX等库的配合使用。此外,还解决了在编译和调试过程中遇到的各种问题,如文件缺失、版本不兼容等。
摘要由CSDN通过智能技术生成

最近的一个项目,做一个流媒体服务器,考虑到要用到H.264和G.711编码,调研使用omnimeeting方案,omnimeeting很早就出现了,以至于和它匹配的很多东西都跟新到新的版本,不能使用了,比如ffmpeg都跟新到0.10版本了,但是和omnimeeting配套使用只能是0.4.9版本以前的。

开源项目完全符合你的要求:Omnimeeting
音视频采用了
ffmpeg
图像处理使用了opencv

网络协议采用了live555

Omnimeeting是一个多平台的C++ 视频会议程序,能通过RTSP协议做到实时的摄像/音频流传输,支持人脸识别和跟踪提供I转换/发送全方位图像的API。

一、        介绍

Live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCPRTSPSIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEGH.263+DVJPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)MPlayer

liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server

四个基本的库分别是UsageEnvironment&TaskSchedulergroupsockliveMediaBasicUsageEnvironment

UsageEnvironment TaskScheduler类用于事件的调度,实现异步读取事件的句柄的设置以及错误信息的输出。另外,还有一个HashTable类定义了一个通用的 hash表,其它代码要用到这个表。这些都是抽象类,在应用程序中基于这些类实现自己的子类。

groupsock类是对网络接口的封装,用于收发数据包。正如名字本身,Groupsock主要是面向多播数据的收发的,它也同时支持单播数据的收发。Groupsock定义了两个构造函数

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

         Port port, u_int8_t ttl);

Groupsock(UsageEnvironment& env, struct in_addr const& groupAddr,

          struct in_addr const& sourceFilterAddr, Port port);

前者是用于SIMsource-independent multicast)组,后者用于SSMsource-specific multicast)组。groupsock库中的Helper例程提供了读写socket等函数,并且屏蔽了不同的操作系统之间的区别,这是在 GroupsockHelper.cpp文件中实现的。

liveMedia库中有一系列类,基类是Medium,这些类针对不同的流媒体类型和编码。

各种测试代码在testProgram目录下,比如openRTSP等,这些代码有助于理解liveMedia的应用。

LIVE555 Media Server是一个纯粹的RTSP服务器。支持多种格式的媒体文件:

      * TS流文件,扩展名ts

      * PS流文件,扩展名mp

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值