live555编译环境
Ⅰ 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编译环境的更多相关文章
- 在CentOS上构建.net自动化编译环境
我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在C ...
- 为 Sublime Text 3059 配置 PHP 编译环境
关于 Sublime Text 3059 的安装及汉化 请参看 http://www.xiumu.org/note/sublime-text-3.shtml 为 sublime Text 配置 PH ...
- sublime text 3 快捷键大全以及配置编译环境
Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...
- 安装maven编译环境
安装maven编译环境 1.默认已经装好yum并配置好yum源(推荐使用163yum源) 2.安装JDK 3.安装相关依赖环境(root用户登陆) yum install -y cmake lzo-d ...
- Mac下设置Android源代码编译环境
在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...
- 4412开发板搭建Uboot、Kernel和Android4.0的编译环境方法
本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过 ...
- CentOS离线安装GCC编译环境
gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...
- Android编译环境折腾记
题记:感觉是时候写点什么了=_=! 第一次安装了ubuntu14.04.5,官网下载的iso,官网下的jar,编译android4.x需要安装jdk6,更高的版本会有问题,baidu到很多搭建环境的步 ...
- 配置 Windows 下的 nodejs C++ 模块编译环境
根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nod ...
随机推荐
- Django笔记 manage.py脚本的使用
1. 管理Django项目 python manage.py startproject projectname # 新建Django project ~~projectname是自己的项目名称 pyt ...
- 编程岗位电话面试问答Top 50[转]
原文链接:http://blog.jobbole.com/84618/ 1. 从哈希表,二叉树和链表中取元素的时间复杂度?如果你有数百万记录呢? 哈希表的时间复杂度为O(1),二叉树为O(logN) ...
- 利用GUID唯一标识符并设置它的过期时间
项目中遇到一个小问题,就是把服务器创建的GUID发送给客户端,客户端接收后,下次访问时带上这个GUID, 服务端这边就进行验证,并做相应的处理. 问题是:项目中还需要这个GUID带过期时间,那是如何设 ...
- grep 同时满足多个关键字、满足任意关键字和排除关键字
1. 同时满足多个关键字 grep "word1" file_name | grep "word2" | grep "word3" 2. 满 ...
- mongoDB高级查询$type4array使用解析
今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...
- .NET Core UI框架Avalonia
.NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...
- IDEA的配置文件访问
问题起源 IDEA中当前模块的配置文件无法被访问,只能够访问到外层的Project的配置文件.具体情形可表示如下: Project --------------- project.properties ...
- [Ccodeforces 736C] Ostap and Tree - 树形DP
给定一个n个点的树,把其中一些点涂成黑色,使得对于每个点,其最近的黑点的距离不超过K. 树形DP. 设置状态f[i][j]: 当j <= K时: 合法状态,表示i的子树中到根的最近黑点距离为j的 ...
- markdown流程图画法小结
markdown流程图画法小结 markdown 画图 流程图 最简单的流程图为例 ```mermaid! graph TD A --> B //在没有(),[].{}等括号的情况之下,图标 ...
- 用Putty通过SSH访问Linux服务器
1,sudo apt-get install ssh 2,sudo service ssh restart 3,重启ssh成功后,就可以直接用Putty访问服务器.