浅析live555媒体库之入门编译使用

简介

Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。

主要分支

live555主要包括四个比较重要的库,分别为 UsageEnvironment、groupsock、liveMedia、BasicUsageEnvironment,是我们二次开发过程中需要的一些接口实现。还有一个testProgs目录,里面是一些基本使用的demo程序,入手可以从这里开始。

源码下载

这里可以下载最新的live555的相关源码,都是以.tar.gz结尾的压缩包,windows下也是下载这个,我下载了最新的2015/8/7的。

编译

官网也有比较明确的不同的平台的详细说明,说明如下:

 // Linux 平台
How to configure and build the code on Unix (including Linux, Mac OS X, QNX, and other Posix-compliant systems)

The source code package can be found (as a ".tar.gz" file) here. Use "tar -x" and "gunzip" (or "tar -xz", if available) to extract the package; then cd to the "live" directory. Then run
    ./genMakefiles <os-platform>
where <os-platform> is your target platform - e.g., "linux" or "solaris" - defined by a "config.<os-platform>" file. This will generate a Makefile in the "live" directory and each subdirectory. Then run "make".

// Windows平台
How to configure and build the code on Windows

Unpack and extract the ‘.tar.gz‘ file (using an application such as "WinZip").
If the ‘tools‘ directory on your Windows machine is something other than "c:\Program Files\DevStudio\Vc", change the "TOOLS32 =" line in the file "win32config".
In a command shell, ‘cd‘ to the "live" directory, and run
    genWindowsMakefiles
This will generate - in each subdirectory - a "*.mak" makefile suitable for use by (e.g.) Microsoft Visual Studio.

因为我是在ubuntu系统下研究live555,所以顺便提一下我编译的时候错误问题,

执行 ./genMakefiles linux后,运行make的时候报错如下:

出现以上情况主要是ubuntu的开发环境没有安装好(ubuntu系统的一个弊端,什么都得自己来)

sudo apt-get install  build-essential
//<安装有提示依赖的话,就安装对应提示的文件包,如果出现版本不匹配,可以先remove,然后在install>

安装成功后,执行make,成功之后再对应的BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment文件夹下生成需要的.a文件了。这里建议不需要使用make install安装到系统,没有必要,需要的时候链接一下就ok了。

使用

make完成之后,进入到mediaSever目录下,会发现生成了一下live555mediaServer可执行文件,是的,这个就是live555自带的一个简单的rtsp服务程序,让我们使用之前大致了解一下live555的功能,运行后如下图所示

此时就表示rtsp服务正常运行,在红色框框中,就是live555库自动系统的一个请求文件流的url地址,

将<filename>改成在mediaSever目录下对应的h264播放文件即可。

如我下面的播放地址为rtsp://10.0.2.15:8554/test10.264,效果如下

live555的入门编译介绍完,后面章节,继续深入介绍相关知识,包括四个库的作用,自己实现文件流的播放,以及实时视频流的播放等。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 13:33:03

浅析live555媒体库之入门编译使用的相关文章

浅析live555媒体库之工作流程介绍

live555项目的源代码包括四个基本的库,各种测试代码以及Media Server. 工作模块 四个基本的库分别是: UsageEnvironment  TaskScheduler, groupsock, liveMedia和BasicUsageEnvironment. 官网英文的基本介绍截图如下: 虽是英文的,但是难度不大,能看懂大致意思.这里多说一句,程序员还是要接触并学习英文,毕竟好的技术都是国外引进的.简单说下我的理解 UsageEnvironment   该类库是对系统环境的抽象,包

浅析live555媒体库之实现实时码流预览

前面已经介绍了,通过live555来实现媒体文件的播放.这篇主要和大家说一下实时流的通过live555的播放. 相对之前的文件流,这里实时流只需要多实现一个子类:通过继承RTSPServer类来实现一些自己的相关操作. 如:有客户端请求过来的时候,需要先通过lookupServerMediaSession找到对应的session,这里可以定义自己的streamName,也就是url后面按个串,.如果没有找到,则新建生成自己需要的不同的session,还有填充自己的SDP信息等等操作. 继承RTS

函数库学习入门指引

函数库学习入门指引 转自:http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161347.html 2011-08-31 21:58 by bangerlee, 2875 阅读, 0 评论, 收藏, 编辑 在学习某一函数库的时候,我们经常做的第一件事, 就是把该函数库的源码下载回来进行编译和安装(一般是这三步:./configure -> make -> make install),然后写一些调用库函数的小用例,看其能否正常运行以及运行后

boost::filesystem库使用入门

以下知识点转自:点击打开原文链接 今天拿起手要用C++写个小工具,从指定的目录递归遍历文件,然后做一下处理.又翻了一下boost的filesystem库.小结一下,希望能加深印象,免得下次又要查看文档. 1. path对象就是一个跨平台的路径对象.有许多方法访问路径的各个部分,也用它的iterator迭代路径中的各个部分: path构造目录结构的时候使用"/"运算符,非常直观. 比如path p1; path p2 = p1/"something"; p1 /= &

交叉编译live555共享库

作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 可以通过这个链接获得最新的live555源码:Live555源码下载 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视频数据的流化.接收和处理等支持,包括MPEG.H.263+.DV.JPEG视频和多种音频编码.同时由于良好的设计,Live555非常容易扩展

Android media媒体库分析之:MediaProvider

在做Android媒体应用程序时(Audio.Image.Video)需要对Android的媒体提供者(MediaProvider)做详细的分析,下面记录一下我的收获: 一.获取MediaProvider: 该工程在系统源码的packages\providers目录下,提出并导入Eclipse,便于阅读: 图中可见都很多报错的,是滴,因为需要一些系统标准sdk之外的接口,不过不影响我们阅读代码. 二.工程结构及内部关系: 可以从上图看出包含4个文件: MediaScannerService.Ja

如何扫描出Android系统媒体库中视频文件

Android系统启动时会去扫描系统文件,并将系统支持的视频文件(mp4,3gp,wmv)扫描到媒体库(MediaStore)中,下面代码演示如何获得这些文件的信息: publicstatic List<VideoInfo> sysVideoList = null;// 视频信息集合 sysVideoList = new ArrayList<VideoInfo>();   setVideoList(); privatevoid setVideoList() {   // Media

Android 之 向媒体库添加新媒体

在默认的情况下.由自己的程序创建,并存储在应用程序私有文件夹中的媒体文件,对其他应用程序来说是不可用的.要想这些媒体文件可以被其他应用程序使用.需要把他们添加到媒体库中,目前有两种方法可以实现. 第一种:使用媒体扫描仪添加到媒体库. /** * 扫描指定目录了的文件,添加到媒体库 * * @param filePath * 路径 */ private void scanMedia(final String filePath) { MediaScannerConnectionClient medi

如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库

在4.4版本之前,我们可以使用发送广播的方式,强制刷新多媒体库 IntentFilter intentFilter = new IntentFilter( Intent.ACTION_MEDIA_SCANNER_STARTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); intentFilter.addDataScheme("file"); sendBroadcast(new Intent(Intent