流媒体技术:VS2012下RTP开源协议库JRTPLIB 3.9.1编译

一. JRTPLIB简介

  RTP 是目前解决流媒体实时传输问题的最好办法,而JRTPLIB是一个用C++语言实现的RTP库,它完全遵循RFC 1889设计,目前已经可以运行在Windows、Linux、FreeBSD、Solaris、Unix和 VxWorks等多种操作系统上。在使用JRTPLIB之前,需要对其进行编译。

二. 使用的平台与软件

操作系统:windows 7

软件:CMake 3.2.3 + Visual Studio 2012

二. 下载链接

由于要对jrtplib进行编译,且jrtplib依赖于jthread,需要下载以下内容:

jrtplibhttp://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.9.1.zip

jthreadhttp://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jthread

cmakehttp://www.cmake.org/cmake/resources/software.html

三. 编译步骤

1.安装cmake-gui

2.将下载的jrtplibjthread压缩包进行解压,同时在同目录下创建jrtplib_buildjthread_build文件夹。

3.以下过程主要是编译jthread 并生成 jthread.libjthread_d.lib

3.1 打开cmake-gui,首先添加输入(where..)和输出路径(where to…)点configure,目标选择vs 2010 默认编译器。然后按照下图检查参数,确认无误再点一次configure,最后点:generate,生成VS2012工程文件:

3.2 进入jthread_build目录下,使用VS2012打开sln文件,编译的具体方法为:选择解决方案资源管理器里的解决方案jthread,运行“重新生成解决方案”;如果没有出现错误,再选择INSTALL项目,运行“生成”。 debugrelease各进行一次上述操作即可。

3.3 如果编译成功(如上图),会在C:\Program Files\jthread\include\jthread下生成头文件;在lib文件夹下生成libcmake文件。

4.以下过程主要是编译jrtplib 生成 jrtplib.libjrtplib_d.lib

4.1大致的步骤与上述相同,但在编译和configure时需要添加一些配置,同样先输入(where..)和输出路径(where to…)点configure,目标选择VS2012默认编译器,初始的配置结果如下:

其中,需要添加ADDITIONAL_DEBUG_LIBRARIESADDITIONAL_RELEASE_LIBRARIESADDITIONAL_INCLUDE_DIRS 的路径:

确认无误再点一次configure,最后点:generate,生成VS2012工程文件:

4.2 打开sln文件并重新生成解决方案:

最后,在debugrelease下分别生成jrtplib_d.libjrtplib.lib

查看以下路径发现生成了一系列头文件,而在lib文件夹下会生成jrtplib_d.libjrtplib.lib以及cmake文件。

四、 使用实例

1.添加库

步骤一:

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

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

步骤二:

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

方法2. pragma 方式,在stdafx.h文件中添加以下内容:

#ifdef DEBUG
    #pragma comment(lib, "jrtplib_d.lib")
    #pragma comment(lib,"jthread_d.lib")
    #pragma comment(lib,"WS2_32.lib")
#else
    #pragma comment(lib, "jrtplib.lib")
    #pragma comment(lib,"jthread.lib")
    #pragma comment(lib,"WS2_32.lib")
#endif

2.添加头文件

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

步骤二:“项目->属性->配置属性->C/C++->常规->附加包含目录”。

五.参考链接

http://www.cnblogs.com/skyseraph/archive/2012/04/07/2435540.html

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

时间: 2024-11-06 20:45:42

流媒体技术:VS2012下RTP开源协议库JRTPLIB 3.9.1编译的相关文章

VS2012 下配置gsl-1.8库

GSL的安装配置如下: 1.下载安装 从http://gnuwin32.sourceforge.net/packages/gsl.htm 下载安装gsl-1.8.exe和gsl-1.8-src.exe两个exe文件. 下载好后如下图: 2.设置VS2012编译环境 1)生成lib文件.发现安装目录lib下并没有libgsl.lib,libgslcblas.lib这两个文件,倒是有两个扩展名为def和a(linux下库文件包格式)的文件,因此必须进行转换. 要用VS2012带的CMD命令行去跑,不

流媒体技术概览

写在前面 一直都想写一篇较为全面的介绍流媒体技术的文章,可是出于种种原因,一直迟迟没有动笔.一个原因是目前网上介绍流媒体技术的文章太多了,从各方面说的都有,搜索一下能找出不少专业性很强的资料,所以怀疑再出来写这个的东西的必要性是否还存在.另一个原因是,确实不想再重复的絮叨一些概念性的东西,也不想简单的整理和摘抄,还是想真正深入的从概念到原理仔细的把这个东西介绍一下,这样就需要把握好技术和语言的尺度水准,既要让读者觉得轻松有趣,又要能让人读到有价值的东西,很担心自己能否把握好这点.其实两个原因归结

流媒体传输协议系列之----RTP/RTCP协议解析

RTP协议 实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新. 国际电信联盟ITU-T也发布了自己的RTP文档,作为H.225.0,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了.它作为因特网标准在[ RFC 3550 ]有详细说明. RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.它一开始被设计为一个多播协议,但后来被

流媒体技术 rtp/rtcp/rtsp资料精华!

?? 流媒体技术 rtp/rtcp/rtsp资料精华! 流媒体技术 流媒体是指在网络中使用流式(Sreaming)传输技术进行传输的连续时基媒体,如音频数据流或视频数据流,而不是一种新的媒体.流媒体技术(或称为流式媒体技术)就是把连续的影像和声音信息经过压缩处理后放到网络服务器上,让浏览者一边下载一边观看.收听,而不需要等到整个多媒体文件下载完成就可以即时观看的技术.流媒体技术并不是单一的技术,它是融合流媒体数据的采集.压缩.存储.传输以及网络通信等多项技术之后所产生的技术. 流媒体给互联网带来

EasyDarwin开源社区流媒体视频课程:流媒体传输控制协议(RTSP RTP SDP)详解之RTSP

视频课程及相关文档代码地址:https://github.com/EasyDarwin/Course#course-3 流媒体传输协议介绍 一.RTSP协议介绍 什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 RTSP 又称为"因特网录像机遥控协议". RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数

开源GIS库GDAL在Windows Codeblocks下的配置

最近在研究开源GIS库GDAL,我是采用自己下载源码编译的方式,主要进行以下几个步骤: 下载gdal源码,下载页为https://trac.osgeo.org/gdal/wiki/DownloadSource,目前最新版为2.0.1,Windows版本的下载地址为http://download.osgeo.org/gdal/2.0.1/gdal201.zip 下载以后解压,我这里解压到C盘根目录,并且在根目录下新建一个文件夹gdal-runtime,用作存放编译结果: 进入gdal-2.0.1,

Linux下常用的C/C++开源Socket库

1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2.      ACE: http://www.cs.wustl.edu/~schmidt/ACE.html ACE采用ACE_OS适配层屏蔽各种不同的.复杂繁琐的操作系统API. ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层.它庞大.复杂,适合大型项目.开源.免费,不依赖第三方库

Linux下经常使用的C/C++开源Socket库

1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2.      ACE: http://www.cs.wustl.edu/~schmidt/ACE.html ACE採用ACE_OS适配层屏蔽各种不同的.复杂繁琐的操作系统API. ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层.它庞大.复杂.适合大型项目.开源.免费.不依赖第三方库

流媒体技术之复习网络协议

在我们认识流媒体的传输协议前,我们需要对OSI和网络协议有一个初步认识. 1,OSI模型的七个层次及其主要功能(见下图) 2,针对于7层模型进行划分协议如下表: 应用层 应用层 表示层 会话层 应用层 1,文件传输协议FTP(File    Transfer Protocol),端口号为21: 2,简单文件传输协议TFTP(Trivial    File Transfer Protocol),端口号为69,针对小文件传输,只能从文件服务器上获得或写入文件,不能列出目录也不能进行认证 ,传输8位数