我們知道, 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 ...