Ⅰ live555简介

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

  该项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。


Ⅱ 下载

live555源码http://www.live555.com/(官网)


Ⅲ 编译步骤

方法一(Win7下命令方式)

0  综述:利用genWindowsMakefiles.cmd生成VS可用的makefile

1  修改win32config。打开live\win32config文件,修改如下

TOOLS32 = c:\Program Files\DevStudio\Vc

TOOLS32 =  E:\Program   Files\Microsoft Visual Studio 10.0\VC

将TOOLS32修改为你的VS2010路径

LINK_OPTS_0   =        $(linkdebug) msvcirt.lib

LINK_OPTS_0   =   $(linkdebug)  msvcrt.lib

编译器索要的LINK运行库不同,原本以为可以改为msvcrt100.lib,但没找着

2  新增Makefile设定。打开live\groupsock\Makefile.head,修改如下

INCLUDES =   -Iinclude -I../UsageEnvironment/include

INCLUDES =   -Iinclude -I../UsageEnvironment/include   -DNO_STRSTREAM

3  建立makefile

  方法:运行live\genWindowsMakefiles.cmd,生成VS能够编译的*.mak文件

4  建立build.bat命令

  新建live\complie.bat,并添加内容如下:

call "E:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
cd liveMedia
nmake /B -f liveMedia.mak
cd ../groupsock
nmake /B -f groupsock.mak
cd ../UsageEnvironment
nmake /B -f UsageEnvironment.mak
cd ../BasicUsageEnvironment
nmake /B -f BasicUsageEnvironment.mak
cd ../testProgs
nmake /B -f testProgs.mak
cd ../mediaServer
nmake /B -f mediaServer.mak

5  开始编译:(命令行下)执行complie.bat

6  编译结果

6-1 在对应的文件下,如下图

 生成与cpp文件对应的obj文件(Object File中间代码文件,源文件complie生成,在linux下为o文件)

 生成lib库: libBasicUsageEnvironment.lib、libgroupsock.lib、libUsageEnvironment.lib、libliveMedia.lib

6-2 在对应的文件下,如下图:生成对应的obj文件和exe文件

说明:若要用VS2010对代码进行调试跟踪,那么编译时需要做相应修改,修改方法如下:

  方法一:修改*.mak文件下的NODEBUG 。不带DEBUG,NODEBUG=1(默认);带DEBUG,DEBUG=1

  方法二:在win32config加入一行 "NODEBUG=1" (不推荐)

方法二(Win7+VS2010方式)

  如果需要自己调试修改源码,采用编译器的方式会更好些,这种方式也更利于源码分析,步骤如下:

0  综述:分别为每个库单独编译生成lib

1  新建解决方案和lib工程,分别如下:

E:\My Document\Visual Studio \Projects\myLive555\BasicUsageEnvironment
E:\My Document\Visual Studio \Projects\myLive555\liveMedia
E:\My Document\Visual Studio \Projects\myLive555\groupsock
E:\My Document\Visual Studio \Projects\myLive555\BasicUsageEnvironment

  完整解决方案的结构如下图

2  添加头文件

  方法1:采用全局包含方式(绝对路径)。需要添加的include文件包括

E:\My Document\Visual Studio \Projects\myLive555\BasicUsageEnvironment\include
E:\My Document\Visual Studio \Projects\myLive555\liveMedia\include
E:\My Document\Visual Studio \Projects\myLive555\groupsock\include
E:\My Document\Visual Studio \Projects\myLive555\BasicUsageEnvironment\include

  方法2:采用局部(当前工程)包含方式(相对路径)。推荐

  描述:工程->属性->配置属性->C/C++->常规->附加包含目录

..\BasicUsageEnvironment\include
..\groupsock\include
..\liveMedia\include
..\UsageEnvironment\include

3  添加文件

在上述lib工程中添加对应的所有的cpp文件。

4  设置工程的输出目录

  路径:E:\My Document\Visual Studio 2010\Projects\myLive555\lib

  方法:项目-》属性-》常规-》输出目录

5  编译解决方案

  结果:在lib目录下生成 个lib、myLive555Header和截图。下载猛击

  方式二,环境win7+VS2010,包含整个工程,下载猛击


Ⅳ 使用实例

1   添加库

①步骤一:

  方法1. 将编译生成的四个lib库库拷贝到“*:\Program Files\Microsoft Visual Studio 10.0\VC\lib”下面

  方法2. 将编译生成的四个lib库库拷贝到当前工程的cpp文件下

  方法3. 将编译生成的四个lib库作为全局库的形式添进工程

②步骤二:

  方法1. [菜单]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写

      “libUsageEnvironment.lib;libliveMedia.lib;libgroupsock.lib;libBasicUsageEnvironment.lib;Ws2_32.lib”

  再次温馨提醒:VS2010中,多个lib之间需要用分号或者回车隔开,用空格行不通,切记!信不信由你了,我在这个地方又折腾了一会了,青春不在啊~

  方法2.  pragma 方式  

#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "libBasicUsageEnvironment.lib")
#pragma comment (lib, "libgroupsock.lib")
#pragma comment (lib, "libliveMedia.lib")
#pragma comment (lib, "libUsageEnvironment.lib")

2  添加头文件

说明:如果采用方式二编译的,那么此步骤可以省去

①步骤一:将所有的.h文件放到一起,如myLive555Header里面,再添加include

②步骤二:

  方法1. “项目->属性->配置属性->C/C++->常规->附加包含目录”

  方法2. “工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录(此法VS2010不通)

3  测试代码

  直接用testProgs里面的例子,我用的是testOnDemandRTSPServer.cpp,测试成功,如下图


Ⅴ 测试live555服务器

方式一:(利用ffplay.exe播放)

1 把媒体文件放到和live555MediaServer.exe同一目录

2 运行live555MediaServer.exe,弹出的dos框里面有地址,如下图

3 客户端,dos下进入到ffplay所在文件夹下,然后输入如下命令

    ffplay.exe rtsp://10.120.2.18/<媒体文件名>

  弹出视频播放画面,如下图

方式二:(直接vlc中播放网络流)

1 把媒体文件放到和live555MediaServer.exe同一目录

2 打开vlc plaer,打开网络串流,输入rtsp,如下图

3 点播放,开始播放,如下图

live555编译环境的更多相关文章

  1. 在CentOS上构建.net自动化编译环境

             我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在C ...

  2. 为 Sublime Text 3059 配置 PHP 编译环境

    关于  Sublime Text 3059 的安装及汉化 请参看 http://www.xiumu.org/note/sublime-text-3.shtml 为 sublime Text 配置 PH ...

  3. sublime text 3 快捷键大全以及配置编译环境

    Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...

  4. 安装maven编译环境

    安装maven编译环境 1.默认已经装好yum并配置好yum源(推荐使用163yum源) 2.安装JDK 3.安装相关依赖环境(root用户登陆) yum install -y cmake lzo-d ...

  5. Mac下设置Android源代码编译环境

    在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...

  6. 4412开发板搭建Uboot、Kernel和Android4.0的编译环境方法

    本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过 ...

  7. CentOS离线安装GCC编译环境

    gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...

  8. Android编译环境折腾记

    题记:感觉是时候写点什么了=_=! 第一次安装了ubuntu14.04.5,官网下载的iso,官网下的jar,编译android4.x需要安装jdk6,更高的版本会有问题,baidu到很多搭建环境的步 ...

  9. 配置 Windows 下的 nodejs C++ 模块编译环境

    根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nod ...

随机推荐

  1. JavaScript 基本语法 -- 运算符的优先级

    在所有的运算里,都是有运算顺序的.小时候学四则运算的时候,我们都知道这么一个规则:先乘除后加减,有括号要先算括号! 同样的,在JavaScript里面,运算符也是有相应的优先级的.其优先级如下表所示, ...

  2. BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin [线段树优化建边]

    4276: [ONTAK2015]Bajtman i Okrągły Robin 题意:\(n \le 5000\)个区间\(l,r\le 5000\),每个区间可以选一个点得到val[i]的价值,每 ...

  3. BZOJ 2986: Non-Squarefree Numbers [容斥原理 二分]

    题意:求第$n \le 10^{10}$个不是无平方因子数 二分答案, 容斥一下,0个质数的平方因子-1个..... 枚举$\sqrt$的平方因子乘上莫比乌斯函数,最后求出无平方因子数的个数取补集 # ...

  4. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析

    最近在做历年的初赛题,那我捡几道比较有代表性的题说一下好了 原题可以在这里看:https://wenku.baidu.com/view/10c0eb7ce53a580217fcfede.html?fr ...

  5. WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序

    DMSkin-for-WPF是一个基于WPF的.Net WPF开源界面库,实现了无边框的WPF开发方案,内置部分控件模板. 你可以参照模板自行修改完善.(以下简称DFW). 核心 DFW实现了比较完美 ...

  6. [Python Study Notes]内存信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  7. install atom markdown preview plus error

    Installing "markdown-preview-enhanced@0.15.2" failed.Hide output- npm ERR! Darwin 17.2.0 n ...

  8. <script>标签中的 defer 与 async区别

    在html里,使用<script>标签对脚本进行外部或内部引用,<script>标签包含了两个特殊的属性:defer与async,他们的区别如下: 1.若<script& ...

  9. 💈 A Cross-Thread Call Helper Class

    Conmajia © 2012, 2018 Introduction When you are working on background threads and call frontend GUI ...

  10. bzoj 3622 已经没有什么好害怕的了 类似容斥,dp

    3622: 已经没有什么好害怕的了 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1213  Solved: 576[Submit][Status][ ...