Live555研究之中的一个 源码编译
Live555 是一个为流媒体提供解决方式的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包含MPEG、H.263+、DV、JPEG视频和多种音频编码。同一时候因为良好的设计。Live555很easy扩展对其它格式的支持。
眼下,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。
从今天開始我们将一起学习live555源代码,第一步就是学习编译live555源代码。
尽管网上有不少已经配置好的project,但自己动手编译却有另外一番乐趣。
Live555源代码包含四个主要的库,各自是UsageEnvironmentr、groupsock、liveMedia、BasicUsageEnvironment。Media Server(server程序)和各种測试代码。
本文使用vc2010编译环境。
一、获得live555源代码
1. live555官网http://www.live555.com/
2. 从csdn下载获得http://download.csdn.net/detail/ithzhang/7654535。
解压后的源代码例如以下图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
包含上述四个库和mediaServerserver程序,以及其它的測试代码。
二、创建project
1. 打开vc2010,创建win32控制台应用程序。项目名称为BasicUsageEnvironment,指定新解决方式的位置,解决方式名称live555,例如以下图:
2.点击确定,在此后的下一步配置中。按下图配置:
3.加入新建项目,选择win32控制台项目,项目名称为UsageEnvironment。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
4.点击确定和下一步后,按下图配置
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
5. 反复3的步骤,加入groupsock 、liveMedia项目。
6. 加入mediaServerproject。并按例如以下配置:
7. 五个project均创建完成,加入后的解决方式结构图例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
三、将源文件加入project
1. 打开源代码文件夹,将BasicUsageEnvironment、UsageEnvironment、groupsock、mediaServer、liveMedia文件夹下的include文件夹和cpp文件复制到上述创建的相应的project文件夹下。
BasicUsageEnvironment拷贝后的效果例如以下图:
2、接着就是将这些文件加入进相应项目,将每一个project下的cpp加入到源文件筛选器下,头文件则加入到头文件筛选器下。
加入后project结构图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
3.加入依赖头文件
方法一、把该项目须要的其它库的头文件复制到该project的include文件夹下。
方法二、在属性->C/C++->常规->附加包含文件夹填写须要包含的头文件路径(推荐)
..\BasicUsageEnvironment\include
..\groupsock\include
..\liveMedia\include
..\UsageEnvironment\include
BasicUsageEnvironment加入后效果例如以下图:
加入完成后,就可以编译生成相应lib。
4. 为MediaServer加入依赖库。
MediaServer须要依赖上述project生成的lib。所以须要将以上生成的lib复制到MediaServerproject文件夹下。
有种方式:
一、使用#pragma
在MediaServer的ive555MediaServer.cpp加入例如以下代码:
#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "BasicUsageEnvironment.lib")
#pragma comment (lib, "groupsock.lib")
#pragma comment (lib, "liveMedia.lib")
#pragma comment (lib, "UsageEnvironment.lib")
二、项目->属性->配置属性->连接器->输入->附加依赖项
UsageEnvironment.lib;
liveMedia.lib;
groupsock.lib;
BasicUsageEnvironment.lib;
Ws2_32.lib
此后就可以成功编译并生成MediaServer.exe。
执行后的效果例如以下图:
5. 使用VLC測试LIVE555server。
此时RTSPserver已经開始执行,等待来自client的请求。
能够使用VLC作为client进行測试。
一、准备一个录像文件, 如aa.264,放在MediaServer.exe同一文件夹。(没有录像文件,点此处)。
二、 打开网络串流,输入本机ip+录像文件名称。如rtsp://192.168.0.106/aa.264
三、播放效果
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRoemhhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
配置好的vc2010project请点击此处下载。
2014、7、20于浙江杭州
Live555研究之中的一个 源码编译的更多相关文章
- Tomcat8源码编译及导入Eclipse中研究
最近因为需求需要修改Tomcat中的某些功能,无奈只能研究那部分源码然后稍作修改. 目前Tomcat最新版是8.0,下载了源码包,编译并导入Eclipse中研究比较方便. 1. Tomcat8源码编译 ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- centos7 源码编译安装TensorFlow CPU 版本
一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...
- [Android Pro] Android源码编译之Nexus5真机编译
reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1. 前言 在Android安全的研究工作中, ...
- 《Flink 源码解析》—— 源码编译运行
更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...
- Flink 源码解析 —— 源码编译运行
更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...
- Tomcat8.0源码编译
最近打算开始研究一下Tomcat的工作原理,拜读一下源码.所以先从编译源码开始了.尽管网上有那么多的资料,但是总是觉得,自己研究一遍,写一遍,在动手做一遍能够让我们更加深入的了解.现在整个社会都流行着 ...
- WordPress安装篇(5):源码编译安装LNMP并部署WordPress
与YUM方式安装相比,源码编译安装方式更灵活,安装过程中能自定义功能和参数,特别是在批量部署服务器又要求软件版本及配置一致时,源码编译安装的优势很明显.本文介绍如何通过源码编译方式安装Nginx1.1 ...
- 从ApacheTomcat架构谈面试到源码编译环境v10.0.12
概述 开启博客分享已近三个月,感谢所有花时间精力和小编一路学习和成长的伙伴们,有你们的支持,我们继续再接再厉 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Tomcat官 ...
随机推荐
- Java易忘知识点统计
缺少 内容 替代措施 幂运算 借助Math类的pow方法 注意 内容 备注 const Java保留关键字,未使用 其他 强制类型转换时,若要舍入得到最接近的整数,可以使用Math.round方法 J ...
- dede手机访问网站跳转到手机端模板
如何手机访问的时候跳转到自己的手机端模板,这时候需要一个js跳转代码:当手机访问的时候直接跳转到手机端 那手机端前提要有手机端的模板 <script> if(navigator.platf ...
- 个人软件过程(psp)需求分析
个人软件过程(psp)需求分析 1. 引言 1.1 背景 开发项目进度计划不准确,延期经常出现,甚至无法给出一个比较准确的延迟时间,给市场推广带来很大麻烦. 2. 任务概述 2.1 目标 PSP ...
- 史上最大型广告欺诈活动Methbot:黑客是如何每天赚到500万美元的
根据国外安全专家的最新报告,有一群黑客正在对美国的知名企业和媒体机构进行广告欺诈活动,而这群黑客每天都可以从中赚取三百万到五百万美金. 是的,你没看错,这绝对是人类历史上最牛X的恶意广告欺诈活动!不过 ...
- ASP MVC
V-view 显示层 C-controller 控制层 M-model 模型 D-database 数据库 S-Service 服务 D-Database/Dao 数据库/访问数据库的方法 View即 ...
- Java学习2_一些基础2_字符串_16.5.5
接上一次的博客. 不可变字符串: Java中String类没有提供用于修改字符串的方法.如果想将greeting中的“Hello”改为“Help!”需要先提取所需要的的字符,然后再拼接.即 greet ...
- CAD得到指定条件的实体
主要用到函数说明: IMxDrawSelectionSet::Select2 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARI ...
- ls 命令还能这么玩?看一下这 20 个实用范例
Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知道. ls是什么 ls命令用于列出文件和目录.默认上,他会列出当前目录的内容.带上 ...
- Django线上部署教程:腾讯云+Ubuntu+Django+Uwsgi(转载)
网站名称: 向东的笔记本 本文链接: https://www.eastnotes.com/post/29 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议.转载请注明出处! ...
- Python 字符串常见的用法
line = “ni hao wo jiao key” line.capotalize()#首字母大写 line.center(20)#居中显示固定的字符 line.count('n')#计数,计算该 ...