精华内容
下载资源
问答
  • JRTPLIB

    2018-03-26 10:53:00
    JRTPLIB is an object-oriented RTP library written in C++. It was first developed for my thesis at the School for Knowledge Technology (or 'School voor Kennistechnologie' in Dutch), a cooperation betwe...

    JRTPLIB is an object-oriented RTP library written in C++. It was first developed for my thesis at the School for Knowledge Technology (or 'School voor Kennistechnologie' in Dutch), a cooperation between the Hasselt University and the Maastricht University.

    The latest version of the library is 3.11.1 (March 2017). You can take a look at the ChangeLog and browse previous versions or development code at GitHub.

    The 3.x.x series is a complete rewrite of the library and is meant to be compliant with RFC 3550. Also, the library now provides many useful components which can be helpful in building all sorts of RTP-capable applications. This version was developed at the Expertise Centre for Digital Media (EDM), a research centre of the Hasselt University.

    The older 2.x series is also still available. Note that this version is not compliant with RFC 3550!

     

    Features

    The library offers support for the Real-time Transport Protocol (RTP), defined in RFC 3550. It makes it very easy to send and receive RTP packets and the RTCP (RTP Control Protocol) functions are handled entirely internally. For more detailed information you should take a look at the documentation included in the package.

     

    Platforms

    Currently, the library is known to work on the following platforms:

    • GNU/Linux
    • MS-Windows (both Win32 and WinCE)
    • Solaris

    The library will probably work on other unix-like environments too.

     

    What's the price?

    The library is totally FREE!

    However, I enjoy getting snail mail, so feel free to send a nice post card to

     
    EDM t.a.v. Jori Liesenborgs
    Wetenschapspark 2
    3590 Diepenbeek
    Belgium
     

    Download

    Several package formats are available:

    The library uses the JThread library to automatically poll for incoming data in the background, so you may want to install it too. Of course, if you'd rather not have it installed, the library will also work without JThread (but you'll have to poll for incoming data yourself). Note that this version requires at least JThread 1.3.0

    If you're working with Visual Studio and you're having trouble getting started, perhaps the following document can help: visual_studio_jthread_jrtplib_compilation.txt

    The documentation can be generated using Doxygen, but is also available on-line at jrtplib.readthedocs.io.

     

    EXAMPLES:

    The following examples are included in the library package:

     

    Copyright & disclaimer

    The following copyright notice and disclaimer applies to the library.

     
    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
     
    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
     
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

    So basically, you can use the library in any way you like, as long as you leave the copyright and disclaimer in the sources.

     

    Projects using JRTPLIB

    Since I'm always curious about where my work is being used, you're welcome to add a description of the project in which you're using JRTPLIB.

     

    Contact

    If you have any questions, remarks, suggestions or you would simply like to tell me what you are using the library for (I'm always interested), you can send me an email at this address: jori.liesenborgs@gmail.com

     

    from:http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html

    展开全文
  • Jrtplib

    2014-11-25 15:52:00
    RTP/RTCP 视频数据传输 (续) http://blog.csdn.net/neohuo/article/details/821442

    RTP/RTCP 视频数据传输 (续)

    http://blog.csdn.net/neohuo/article/details/821442

    展开全文
  • jRtpLib

    2006-02-23 09:05:59
    主要实现rtp/rtcp发送媒体数据的功能
  • jRTPlib

    2009-08-10 17:14:00
    发送:获得接收端的 IP 地址和端口号 创建 RTP 会话 指定 RTP 数据接收端 设置 RTP 会话默认参数 发送流媒体数据接收:获得用户指定的端口号 创建RTP会话 设置接收模式 接受RTP数据 检索RTP数据源 获取RTP数据报 ...

     
    发送:获得接收端的 IP 地址和端口号        创建 RTP 会话        指定 RTP 数据接收端 设置 RTP 会话默认参数   发送流媒体数据
    接收:获得用户指定的端口号  创建RTP会话  设置接收模式  接受RTP数据  检索RTP数据源  获取RTP数据报  删除RTP数据报

     

     

    环境搭建及编译方法

    pc 、arm

     

    参考:

    http://doserver.net/read.php/1027.htm

    http://doserver.net/read.php?1028



    展开全文
  • jrtplib编译

    2017-11-12 09:36:52
    文档描述了在linux中编译jrtplib的具体方法,以及会在编译过程遇到的问题
  • QT jrtplib

    2014-08-02 15:59:48
    1最近要在QT平台上实现流媒体传输,网上大多使用jrtplib 开源库,经过前期的收集资料,这两天终于成功的在QT上成功的运行起来了jrtplib 里面的exmple1.:有图有真相
  • jrtplib3.11.1.zip

    2020-01-15 18:01:51
    jrtplib源码编译
  • jrtplib3.7.1

    2012-07-29 16:10:09
    RTP的库JRTPLIB3.7.1 给大家分享一下
  • jrtplib3.9.1

    2012-06-28 21:16:16
    jrtplib3.9.1 源码和例子都有,测试ok
  • jrtplib介绍

    千次阅读 2019-09-27 16:14:26
    程序流程 发送:获得接收端的 IP 地址和端口号 创建 RTP 会话 指定 RTP 数据接收端 设置 RTP 会话 默认参数 发送流媒体数据 接收:获得用户指定的...I、在使用 JRTPLIB 进行实时流媒体数据传输之前,首先应该生成 R...

    程序流程
    发送:获得接收端的 IP 地址和端口号        创建 RTP 会话        指定 RTP 数据接收端 设置 RTP 会话 默认参数   发送流媒体数据
    接收:获得用户指定的端口号  创建RTP会话  设置接收模式  接受RTP数据  检索RTP数据源  获取RTP数据报 删除RTP数据报

    1.初始化

    I、在使用 JRTPLIB 进行实时流媒体数据传输之前,首先应该生成 RTPSession 类的一个实例来表示此次 RTP会话,然后调用 Create() 方法来对其进行初始化操作。RTPSession 类的 Create() 方法只有一个参数,用来指明此次 RTP 会话所采用的端口号。

    RTPSession sess;  
    sess.Create(5000);

    JRTPLIB-3.11中已经修改了Create(prot)方法。新的Create方法被修改为Create(sessparams,&transparams)。其中的两个参数需要如下先定义:

    RTPUDPv4TransmissionParams transparams;
    RTPSessionParams sessparams;
    
    sessparams.SetOwnTimestampUnit(1.0/8000.0);/*设置时间戳,1/8000表示1秒钟采样8000次,即录音时的8KHz*/
    
    sessparams.SetAcceptOwnPackets(true);
    
    transparams.SetPortbase(portbase);/*本地通讯端口*/

    II、设置恰当的时戳单元,是 RTP 会话初始化过程所要进行的另外一项重要工作,这是通过调用 RTPSession类的 SetTimestampUnit() 方法来实现的,前面已经提过。

     

    2.数据发送

    I、当 RTP 会话成功建立起来之后,接下去就可以开始进行流媒体数据的实时传输了。首先需要设置好数据发送的目标地址,RTP 协议允许同一会话存在多个目标地址,这可以通过调用 RTPSession 类的AddDestination()、DeleteDestination() 和 ClearDestinations() 方法来完成。例如,下面的语句表示的是让 RTP 会话将数据发送到本地主机的 6000 端口:

    unsigned long addr = ntohl(inet_addr("127.0.0.1")); 
    sess.AddDestination(addr, 6000);

    II、目标地址全部指定之后,接着就可以调用 RTPSession 类的 SendPacket() 方法,向所有的目标地址发送流媒体数据。SendPacket() 是 RTPSession 类提供的一个重载函数对于同一个 RTP 会话来讲,负载类型、标识和时戳增量通常来讲都是相同的,JRTPLIB 允许将它们设置为会话的默认参数,这是通过调用 RTPSession 类的 SetDefaultPayloadType()、SetDefaultMark() 和SetDefaultTimeStampIncrement() 方法来完成的。为 RTP 会话设置这些默认参数的好处是可以简化数据的发送,例如,如果为 RTP 会话设置了默认参数:

    sess.SetDefaultPayloadType(0);
    sess.SetDefaultMark(false);  
    sess.SetDefaultTimeStampIncrement(10);

    之后在进行数据发送时只需指明要发送的数据及其长度就可以了:

    sess.SendPacket(buffer, 5);

    在真正的语音传输中,上面的buffer就是我们录音时所得到的buffer。使用上面的函数可以简单的发送,但无法真正的实现RTP传输,我们需要调用另一个接口:sess.SendPacket((void *)buffer,sizeof(buffer),0,false,8000);详细的说明可以查看JRTPLIB的说明文档。

     

    3.数据接收

    对于流媒体数据的接收端,首先需要调用 RTPSession 类的 PollData() 方法来接收发送过来的 RTP 或者RTCP 数据报。

    JRTPLIB-3.11中修改PollData()方法为Poll(),使用都一样

    由于同一个 RTP 会话中允许有多个参与者(源),你既可以通过调用 RTPSession 类的

    GotoFirstSource() 和 GotoNextSource() 方法来遍历所有的源,也可以通过调用 RTPSession 类的GotoFirstSourceWithData() 和 GotoNextSourceWithData() 方法来遍历那些携带有数据的源。在从 RTP 会话中检测出有效的数据源之后,接下去就可以调用 RTPSession 类的 GetNextPacket() 方法从中抽取 RTP 数据报,当接收到的 RTP 数据报处理完之后,一定要记得及时释放。


    JRTPLIB 为 RTP 数据报定义了三种接收模式,其中每种接收模式都具体规定了哪些到达的 RTP 数据报将会被接受,而哪些到达的 RTP 数据报将会被拒绝。通过调用 RTPSession 类的 SetReceiveMode() 方法可以设置下列这些接收模式: 
    RECEIVEMODE_ALL  缺省的接收模式,所有到达的 RTP 数据报都将被接受; 
    RECEIVEMODE_IGNORESOME  除了某些特定的发送者之外,所有到达的 RTP 数据报都将被接受,而被拒绝的发送者列表可以通过调用 AddToIgnoreList()、DeleteFromIgnoreList() 和 ClearIgnoreList() 方法来进行设置; 
    RECEIVEMODE_ACCEPTSOME  除了某些特定的发送者之外,所有到达的 RTP 数据报都将被拒绝,而被接受的发送者列表可以通过调用 AddToAcceptList ()、DeleteFromAcceptList 和 ClearAcceptList () 方法来进行设置。 下面是采用第三种接收模式的程序示例。

    if (sess.GotoFirstSourceWithData()) {   
     do {   
              sess.AddToAcceptList(remoteIP, allports,portbase);
               sess.SetReceiveMode(RECEIVEMODE_ACCEPTSOME);
    
               RTPPacket *pack;         
              pack = sess.GetNextPacket();            // 处理接收到的数据    
               delete pack;   } 
     while (sess.GotoNextSourceWithData()); 
     }

    完整的代码中,首先需调用Poll()方法接收RTP数据报,然后在BeginDataAccess()和EndDataAccess()之间进行数据接收的操作。此时,我们设定程序一直do-while等待并处理数据

    do{
    
    #ifndef RTP_SUPPORT_THREAD
                    error_status = sess_client.Poll();
                    checkerror(error_status);
    #endif // RTP_SUPPORT_THREAD
                    sess_client.BeginDataAccess();
    
                    // check incoming packets
                    if (sess_client.GotoFirstSourceWithData())
                    {
                             printf("Begin play/n");
                            do
                            {
                                    RTPPacket *pack;
    
                                    while ((pack = sess_client.GetNextPacket()) != NULL)
                                    {
                                            // You can examine the data here
                                            printf("Got packet !/n");
                                            timestamp1 = pack->GetTimestamp();
                                            lengh=pack->GetPayloadLength();
                                            RawData=pack->GetPayloadData();   //得到数据
    
    printf("  timestamp: %dlengh=%d/n",timestamp1,lengh);
    
    
                                                int fd = open("/dev/dsp", O_RDWR);
                                                int status = write(fd, RawData,lengh );
                                                printf("Play bytes:%d/n",status);
                                                if (status != lengh)
                                                  perror("wrote wrong number of bytes");
    
                                                status = ioctl(fd, SOUND_PCM_SYNC, 0);
                                                if (status == -1)
                                                perror("SOUND_PCM_SYNC ioctl failed");
                                                printf("Play end/n");
                                                 close(fd);
                                            sess_client.DeletePacket(pack);
    
                                    }
                            } while (sess_client.GotoNextSourceWithData());
                             //return 0;
    
                    }
    
                    sess_client.EndDataAccess();
                }while(1);

    说明 : jrtp-3.x 中有两种数据接收方式:

    第一种是用 jthread 库提供的线程自动在后台执行对数据的接收。

    第二种是用户自己调用 RTPSession 中的 Poll 方法。

    如果采取第一种方法则要安装 jthread 库,则安装 jthread-1.x.tar.gz ,而且 jthread-1.x 必须先与 jrtp-3.x 的安装。因为在 jrtp-3.x 的 configure 中,会查找系统是否有编译了 jthread 库,如果有,那么编译的 jrtp 库会开启对 jthread 的支持。因此如果先编译jrtp 在编译 jthread ,编译出来的 jrtp 是没有开启对 jthread 的支持的。如果采用第二种方法,那么可以不用编译 jthread 库,而直接编译 jrtp 库。

     

    可以加入环境变量 export LD_LIBRARY_PATH=/XXX/lib,避免将所有lib都放入/usr下

    ./ example

    展开全文
  • jrtplib-3.11.1

    2017-11-15 20:01:04
    JRTPLIB is an object-oriented RTP library written in C++. The library offers support for the Real-time Transport Protocol (RTP), defined in RFC 3550.
  • jrtplib移植

    2019-09-28 21:51:05
    jrtplib版本:3.11.1 jthread版本:1.3.3 libsrtp版本:1.6.0 jrtplib库有两种编译方式: 1. 使能jthread编译,此方式可使jrtplib自动在后台轮询结束数据, 而不必用户自己调用RTPSession类中的poll方法轮询。(推...
  • JRTPlib 学习笔记

    2014-11-09 21:07:10
    JRTPLIB学习笔记讲解了linux 嵌入式 下对jrtplib库的使用,对初学者很有帮助.
  • jrtplib开发实例

    2015-10-12 13:24:30
    老外用C++编写的开源RTP协议库,用来进行实时数据传输,可以运行在 Windows、Linux、 FreeBSD、Solaris、...这个是一个简单的利用jrtplib进行传输的工程实例,在vs2008下环境下,前提是你已经拥有了jrtplib以及jtreadd
  • jrtplib详解

    2019-08-14 16:25:56
    https://www.cnblogs.com/yuweifeng/p/7550737.html流媒体协议之JRTPLIB的使用20170919 https://www.cnblogs.com/ansersion/p/6959690.html一个基于JRTPLIB的轻量级RTSP客户端——myRTSPClient详解 ...
  • linux下编译jrtplib

    2018-07-12 11:48:37
    linux下编译jrtplib,centos。获取视频流,视频流传输
  • jrtplib-3.9.1;jrtplib-3.7.1;jthread-1.3.1
  • jrtplib-3.11.1.rar

    2018-12-04 10:09:28
    jrtplib-3.11.1.rar
  • jrtplib库使用C++语言实现,封装了RTP、RTCP协议的内容,可用于发送RTP数据包和RTCP数据包。RTP、RTCP 协议本身不是很复杂的协议,使用该库可以免去实现协议的细节,但是如果要用好该库,最好对RTP、RTCP协议有一个...
  • jthread jrtplib

    2010-01-20 19:42:36
    jthread-1.2.1.tar.gz jrtplib-3.7.1.tar.gz
  • jrtplib简介

    千次阅读 多人点赞 2016-04-14 15:28:03
    jrtplib是一个基于C++、面向对象的RTP封装库,最新的版本是3.9.1(2011年11月)。为了与RFC3550相兼容,3.x.x版本经过完全重写,现在它提供了一些非常有用的组件,这些组件为构建各种各样的RTP应用程序开发提供了...
  • JRTPLIB 介绍

    千次阅读 2017-04-25 14:38:32
    官网:http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html ...JRTPLIB is an object-oriented RTP library written in C++. It was first developed for my thesis at the School fo
  • JRTPLIB3.5.2说明文档

    2020-11-13 09:36:51
    jrtplib的翻译文档,对开发还是蛮有帮助的,为什么这个描述还必须大于50个字啊啊啊啊啊啊啊啊啊啊啊
  • jrtplib-3.7.1 在 window vs2008 中编译,已经编译好, 可以直接使用,
  • 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:... 《JRtplib开发笔记(一):JRtplib简介、JThread库编译》:https://blog.csdn.net/qq21497936/article/details/8478...
  • jrtplib笔记

    2018-05-28 22:09:20
    jrtplib 笔记(1) - CSDN博客 https://blog.csdn.net/alajl/article/details/5419489 最近要实现 non-compound rtcp(http://tools.ietf.org/html/draft-ietf-avt-rtcp-non-compound-02 ) 因为我们使用的是 ...
  • jrtplib 帮助文档

    2013-08-21 16:38:40
    jrtplib 帮助文档,希望对大家有所帮助。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,330
精华内容 932
关键字:

jrtplib