ortp庫使用入門

2021-06-16 18:54:31 字數 2531 閱讀 6097

我們知道, rtp(real-timetransportprotocol)是用於internet上針對多**資料流的一種傳輸協議

,做流**

傳輸方面的應用離不開rtp協議

的實現及使用,為了更加快速地在專案中應用rtp協議

實現流**

的傳輸,我們一般會選擇使用一些rtp庫,例如使用c++語言編寫的jrtplib庫,網上關於rtp協議以及jrtplib庫的介紹已經很多了,在此我也不再贅述,文字主要介紹實現了rtp協議的另一種開源庫——ortp庫,這個庫是純使用c語言編寫,由於我們的專案是基於linux

下的c語言程式設計,故我們選擇了ortp作為我們的第三方庫,在此我也對該庫進行乙個簡單地介紹,希望對其他ortp的初學者有所幫助。

一、簡介

ortp是乙個支援rtp以及rfc3550協議的庫,有如下的特性:

(1)使用c語言

二、主要函式介紹

三、程式示例

下面,我簡單地通過程式演示了怎麼使用ortp進行rtp資料報的傳送,接收端的程式待以後有時間再整理出來吧。

/// @fileortpsend.c  

// @brief   ortpsend的測試

// 本檔案示例使用ortp庫進行rtp資料報的傳送   

//// @version 1.0

// @author  ticktick

// @date2010/07/07

// @e-mail  [email protected]

//// 修訂說明:建立檔案

/ #include 

#include 

#include 

#ifndef _win32  

#include 

#include 

#include 

#endif 

// 時間戳增量

#define time_stamp_inc 160  

// 時間戳  

uint32_t g_user_ts;  

/**  初始化

* *   主要用於對ortp以及其它引數進行初始化

*   @param:  char * ipstr 目的端ip位址描述串

*   @param:  iint port 目的端rtp監聽埠

*   @return:  rtpsession * 返回指向rtpsession物件的指標,如果為null,則初始化失敗

*   @note:

*/rtpsession * rtpinit(char

* ipstr,

intport)  

return

session;  

}  /**  傳送rtp資料報

*  *   主要用於傳送rtp資料報

*   @param:  rtpsession *session rtp會話物件的指標

*   @param:  const char *buffer 要傳送的資料的緩衝區位址 

*   @param: int len 要傳送的資料長度

*   @return:  int 實際傳送的資料報數目

*   @note: 如果要傳送的資料報長度大於bytes_per_count,本函式內部會進行分包處理

*/int

rtpsend(rtpsession *session,

const

char

*buffer, 

intlen)  

else

// 否則就傳送剩餘長度的資料 

else

}  ortp_message("send data bytes %i/n "

,sendbytes);  

rtp_session_send_with_ts(session,(char

*)(buffer+curoffset),sendbytes,g_user_ts);  

// 累加 

sendcount ++;  

curoffset += sendbytes;   

g_user_ts += time_stamp_inc;  

// 傳送一定資料報後休眠一會 

if(sendcount%10==0)   

}  return

0;  

}  /**  結束ortp的傳送,釋放資源

* *   @param:  rtpsession *session rtp會話物件的指標

*   @return:  0表示成功

*   @note:

*/int

rtpexit(rtpsession *session)  

// 主函式,進行測試 

intmain()  

// 迴圈傳送 

while

(1)  

usleep(10000);  

printf("sleep"

);  

}  // 退出 

rtpexit(prtpsession);  

return

0;  

}

Intel IPP庫使用入門

說明 本文基於ipp v5.3 update 3 for windows on ia 32,參考的文件採用安裝包安裝的文件 文件 userguide win ia32.pdf 包含了本文的大部分資訊 全稱 intel integrated performance primitives ia 32 3...

python PyQt4庫使用入門

開始研究python的gui庫了,畢竟開發個小工具什麼的介面是少不了的 1.圖形庫的選擇 python的圖形庫有很多,我主要查了下列三個的一些資料 tkinter,python配備的標準gui庫,但是功能比較弱,似乎只適合開發非常簡單的介面。wxpython,它是python語言對流行的wxwidg...

入門Django ,使用sqlite資料庫

入門django 使用sqlite資料庫 1.建立工程 django admin startproject project name 2.建立應用 3.開啟admin應用 在settings.py檔案裡新增admin應用 django.contrib.admin 在url.py檔案裡新增 from ...