多媒体开发之--- live555 vs2010/vs2013下编译,使用,测试
Ⅰ 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 2010\Projects\myLive555\BasicUsageEnvironment E:\My Document\Visual Studio 2010\Projects\myLive555\liveMedia E:\My Document\Visual Studio 2010\Projects\myLive555\groupsock E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment
完整解决方案的结构如下图
2 添加头文件
方法1:采用全局包含方式(绝对路径)。需要添加的include文件包括
E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment\include E:\My Document\Visual Studio 2010\Projects\myLive555\liveMedia\include E:\My Document\Visual Studio 2010\Projects\myLive555\groupsock\include E:\My Document\Visual Studio 2010\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目录下生成 BasicUsageEnvironment.lib、groupsock.lib、UsageEnvironment.lib、liveMedia.lib
下载编译好的live555(lib和头文件)
方式一,环境为Win7,包含编译好的live555、提取的4个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 点播放,开始播放,如下图
2014/5/20 新增 VS2013下编译的最新live555(live555.2014.5.14版)完整工程
下载地址:http://download.csdn.net/detail/zgzhaobo/7376487
http://www.cnblogs.com/hummersofdie/archive/2013/04/23/3037184.html
多媒体开发之--- live555 vs2010/vs2013下编译,使用,测试相关推荐
- 【流媒體】live555—VS2010/VS2013 下live555编译、使用及测试
[流媒體]live555-VS2010 /VS2013 下live555编译.使用及测试 SkySeraph Apr 11st 2012 Email:skyseraph00@163.com 更多精彩请 ...
- 深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE
深度剖析E680G开发五.移植OPIE操作系统(下)-编译和运行OPIE 草木瓜 20060930 一.前言 这是最后的内容,然而却有很大的遗憾,如果运行OPIE,但E68 ...
- VS2010 C++下编译调试MongoDB源码
考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本: boost版本1.42: ...
- VS2010 C++下编译调试MongoDB“.NET研究”源码
考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本: boost版本1.42: http://sourcef ...
- 鸿蒙硬件开发:Hi3861开发环境搭建及Windows下编译下载程序
Windows开发环境准备 可参考官方文档Windows开发环境准备进行配置. 安装VS Code https://code.visualstudio.com/Download 安装Python ht ...
- VS2010 C++下编译调试MongoDB源码 r2.2.2
编译 下载mongodb-src-r2.2.2 用VS2010打开 mongodb-src-r2.2.2\src\mongo\db\db_10.sln 编译mongod项目 调试 先创建数据库文件夹& ...
- VS2013下编译osip和exosip的5.0版本静态库及搭建和简单例子的实现
参考文章: https://www.cnblogs.com/baiduboy/p/6089197.html http://blog.csdn.net/bikeytang/article/details ...
- Pango在windows+vs2013下编译
欢迎关注公众号可以查看更多完整文章 Pango可以用来显示文字,也可以用来处理复杂文字,例如Khmer(高棉语).泰语等需要组合的文字. 下载地址:https://github.com/raspber ...
- LASlib在VS2010平台下的完美编译
LASlib在VS2010平台下的完美编译 1. 简要介绍 LASlib是进行点云数据读写的理想工具,由北卡计算机学院的Martine isenburg编写.基于该开源库,作者同时开发了LASTool ...
最新文章
- Linux那些事儿之我是Sysfs(5)举例二sculld
- 北京清华长庚医院与数据院签约,医工结合促医疗大健康发展
- Android 项目,没有可运行的Module项
- Scanner如何接受char类型的数据
- 【CMD】管道符(|)
- Fiori Elements - detail view layout analysis
- 水晶报表-控制结构-For 循环(Crystal 语法)
- 谢撩,人在斯坦福打SoTA
- C\C++的转义字符
- SAP销售订单状态修改(审核) 计划行自动产生需求,产生MD04需求
- Redis学习之字典源码分析
- c语言全缓冲,C语言缓冲区 - osc_8b4n157m的个人空间 - OSCHINA - 中文开源技术交流社区...
- gke google_使用ExternalDNS扩展GKE
- webpack中各个模块归纳总结图
- 关于FlashDB的应用-GD32F450上
- 干货来了 | SQL 进阶技巧
- Qt之定制个性化系统托盘菜单(仿360安全卫士)
- excel想要把两列合并且用空格隔开
- 如何设置修改网页中滚动条
- linux源代码哪里下载,Redhat的源代码在哪里下载
热门文章
- linux开机启动遇到grub启动_Linux如何跳过grub启动
- 2021年春季学期-信号与系统-第十四次作业参考答案-第四小题参考答案
- 2021年春季学期-信号与系统-第五次作业参考答案-第七小题
- Python几个函数的の测试
- 赛题出简单了,让我们情何以堪?
- macos关闭软件更新小红点_如何一键消除手机上的小红点?请看这招...
- php在线备忘录,备忘录模式(Memento)
- gitlab 无法git clone 的一个小点
- mac os mysql 命令_如何在Mac OS上安装“mysql”命令?
- linux mysql8.0.16 下载_Linux CentOS上安装 MySQL 8.0.16