欧美第一页在线_久久在线观看视频_成人激情视频在线观看_亚洲一区二区久久久_亚洲欧美一区二区三区四区_国产精品美女主播在线观看纯欲_日本精品久久电影_亚洲自拍偷拍网址_www.久久草.com_欧美精品免费在线_国产精品久久久久久久美男_国产一区二区三区在线视频_欧美日韩精品中文字幕_欧美老女人在线视频_欧美日韩中文字幕日韩欧美_色噜噜国产精品视频一区二区

內(nèi)容字號:默認(rèn)大號超大號

段落設(shè)置:段首縮進(jìn)取消段首縮進(jìn)

字體設(shè)置:切換到微軟雅黑切換到宋體






使用pjsip傳輸已經(jīng)編碼的視頻

時間:2016-06-12 來源:中國集群通信網(wǎng) 作者:本站整理 點擊:

jsip功能很強,做sip rtp語音通話庫首選。在2.0之后,也支持視頻。不過,它的視頻功能缺省是從視頻設(shè)備采集,然后進(jìn)行編譯,再發(fā)送出去的。假設(shè),我們已經(jīng)有了視頻源,比如IP攝像機,不需要采集和編碼這個過程,怎么處理呢?假設(shè)我們采用pjsip附帶的pjsua為例。

通常的方法:

1 把視頻源當(dāng)然文件來處理,sample有。不過這種方法用的不多。

2 修改vid_stream.c,在put_frame和get_frame里,換上我們自己的視頻源。這種方法使用的最多,很多人在1.x版本里支持視頻,就用這種方法。

3 本文采用的:重新構(gòu)造sdp,自己創(chuàng)建rtp通道。

前兩個方法思路直接,代碼量都不小,尤其是第二種,需要修改pj底層代碼。

如果基于pjsua做一個簡單的視頻通信,可以采用本文中的方法。其實代碼量也不小,不過sample提供了參考,實現(xiàn)起來也比較容易。下面簡單說明:

1 關(guān)鍵點在sdp上,pjsua_call_make_call這個函數(shù)非常方便,直接呼叫對方。不過它在底層做了太多工作,比如啟動了聲卡。而不用這個函數(shù),直接用比較底層的pjsip_inv_send_msg,自己處理的工作相對比較多(但不難,不過這樣就不需要pjsua這個現(xiàn)成的程序了,所以我們繼續(xù)用pjsua_call_make_call)。

不過還好,pj庫提供了大量的回調(diào),其中一個:on_call_sdp_created,就是在創(chuàng)建sdp后回調(diào)上來,由我們自己再修改。比如我們自己定義rtp的端口g_local_port。

void on_call_sdp_created(pjsua_call_id call_id,

pjmedia_sdp_session *sdp,

pj_pool_t *pool,

const pjmedia_sdp_session *rem_sdp)

{

int nPort;

if (sdp != NULL)

{

pjmedia_sdp_media *m = sdp->media[sdp->media_count-1];

m->desc.port = g_local_port;

pjmedia_sdp_conn *c = sdp->conn;

char* addr;

if (c)

addr= c->addr.ptr;

else

{

const pj_str_t *hostname;

pj_sockaddr_in tmp_addr;

char *addr;

hostname = pj_gethostname();

pj_sockaddr_in_init(&tmp_addr, hostname, 0);

addr = pj_inet_ntoa(tmp_addr.sin_addr);

sdp->conn = (pjmedia_sdp_conn *)pj_pool_zalloc (pool, sizeof(pjmedia_sdp_conn));

sdp->conn->net_type = pj_str("IN");

sdp->conn->addr_type = pj_str("IP4");

sdp->conn->addr = pj_str(addr);

}

sdp->origin.addr = *pj_gethostname();

}

}

同樣,這里還可以修改payload type等。

這是發(fā)起呼叫時的,接收方收到后的回應(yīng)之后,也會觸發(fā)這個回調(diào),自己設(shè)定RTP端口,payload type就可以了。

呼叫成功后,雙方建立起連接關(guān)系,這時需要傳rtp數(shù)據(jù)了。pjsua把這些工作都放在底層了,不做任何修改,只需要在發(fā)送和接收時,自己做一些處理就行。

先說接收方(參考siprtp.c源碼):

pj_status_t init_local_rtp()

{

if (m_bInitMedia)

{

destroy_media();

}

//g_local_port = local_port;

pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);

    pool = pj_pool_create(&(cp.factory), "test", 1000, 512, NULL);

int status;

//status = pjmedia_endpt_create(&cp.factory,  pjsip_endpt_get_ioqueue(pjsua_get_pjsip_endpt()), 0, &med_endpt);

status = pjmedia_endpt_create(&cp.factory, NULL, 1, &med_endpt);

status = pjmedia_rtp_session_init(&video.out_sess, 97, pj_rand());

status = pjmedia_rtp_session_init(&video.in_sess, 97, 0);

status = pjmedia_transport_udp_create(med_endpt, NULL, g_local_port,  0, &video.transport);

m_bInitMedia = true;

video.active = true;

return 0;

}

這段代碼是本地啟動rtp一個端口用來接收視頻數(shù)據(jù)。

然后,從sdp得到對方發(fā)送的ip和端口,調(diào)用pjmedia_transport_attach,建立關(guān)聯(lián)就可以了。

發(fā)送方同樣調(diào)用上面函數(shù),初始化本地端口,但不需要pjmedia_transport_attach。(假定視頻傳輸是單方向的)

發(fā)送動作就比較簡單了,先把要發(fā)的數(shù)據(jù)分包,大小不超過1400,然后pjmedia_rtp_encode_rtp,再pjmedia_transport_send_rtp。

上面還沒有講接收方是怎么接數(shù)據(jù)的,這里也用到了pj提供的回調(diào)機制:

status = pjmedia_transport_attach(video.transport, &video, 

//&info.rem_addr, 

&remote_addr,

NULL, 

sizeof(pj_sockaddr_in),

&on_rx_rtp,

NULL);

這里面的on_rx_rtp就是接收RTP的回調(diào)。

video.transport等定義:

struct media_stream

{

    /* Static: */

    unsigned  call_index;     /* Call owner.  */

    unsigned  media_index;     /* Media index in call. */

    pjmedia_transport   *transport;     /* To send/recv RTP/RTCP */

    /* Active? */

    pj_bool_t  active;     /* Non-zero if is in call. */

    /* Current stream info: */

    pjmedia_stream_info  si;     /* Current stream info. */

    /* More info: */

    unsigned  clock_rate;     /* clock rate  */

    unsigned  samples_per_frame; /* samples per frame */

    unsigned  bytes_per_frame;   /* frame size.  */

    /* RTP session: */

    pjmedia_rtp_session  out_sess;     /* outgoing RTP session */

    pjmedia_rtp_session  in_sess;     /* incoming RTP session */

    /* RTCP stats: */

    pjmedia_rtcp_session rtcp;     /* incoming RTCP session. */

    /* Thread: */

    pj_bool_t  thread_quit_flag;  /* Stop media thread. */

    pj_thread_t  *thread;     /* Media thread.  */

};

struct media_stream video;


(中國集群通信網(wǎng) | 責(zé)任編輯:李俊勇)

中國集群通信網(wǎng),國內(nèi)首家集群通信專業(yè)網(wǎng)站。

Copyright © PttCn.Net, All Rights Reserved.   

聯(lián)系我們 聯(lián)系我們 中國集群通信網(wǎng) 對講機學(xué)堂 對講機世界

国产91色在线观看| av天天在线| 日本一级二级视频| 一区二区三区欧洲区| 日韩不卡在线视频| 欧美日韩亚洲一区| 欧美大黑帍在线播放| 北京富婆泄欲对白| 欧美激情xxxxx| 日韩精品xxx| 欧美成人精品午夜一区二区| **爰片久久毛片| 日本视频一二三区中文字幕| 中文字幕乱码在线人视频| 国产免费一级片| 国产99视频在线观看| 五月天精品视频| www.av88| 亚洲精品视频网| 美女翘臀白浆直流视频| 少妇被躁爽到高潮无码文| 香蕉97视频观看在线观看| 先锋影视中文字幕| 色偷偷亚洲第一综合| 国产精品影视在线| www.热久久| 日韩精品国内| 日本一区二区视频| 蜜臀久久99精品久久久| 牛牛精品在线| 亚洲欧美综合一区二区| а√天堂资源在线| 欧美性视频在线播放| 国产精品乱码人人做人人爱| 日韩欧美亚洲在线| 日韩a在线播放| 中文字幕欧美一区二区| 91视频.com| 日韩在线电影| 国产欧美精品一区二区色综合朱莉| 亚洲欧美日韩在线一区| 国产精品乱码一区二区三区视频| 中文在线a天堂| 日产精品久久久一区二区福利| 日本一道本视频| 欧美日韩一级片在线观看| 亚洲精品久久久一区二区三区| 国产经典三级在线| 人妻无码视频一区二区三区| canopen超线视频网线的应用| 中国日本在线视频中文字幕| 无码人妻aⅴ一区二区三区69岛| 97香蕉久久| 欧美一a一片一级一片| 亚洲色图av在线| 欧美xxx视频| 国产精品极品| 国产蜜臀av在线一区二区三区| 色播久久人人爽人人爽人人片视av| 嫩草研究院在线观看| 在线免费一区二区| 久久综合九色综合欧美就去吻| 在线观看国产v片| 91精品国产91久久久久久密臀| 国内精品小视频在线观看| 欧美一级特黄aaaaaa大片在线观看| 鲁一鲁一鲁一鲁一色| 国产成人欧美日韩在线电影| 欧美一级免费| 亚洲最大福利视频| 国内精品久久影院| 日韩在线观看高清| 欧美黑人性受xxxx精品| 在线观看污污视频| 国产激情在线播放| 欧美性精品220| 欧美日韩成人免费| 乱中年女人av三区中文字幕| 日本1区2区3区中文字幕| 亚洲产国偷v产偷v自拍涩爱| 免费福利视频一区二区三区| 在线观看私人影院w| 91成人国产| 在线观看亚洲一区| 日韩第二十一页| 韩国三级与黑人| 欧美自拍资源在线| 日韩一区二区三区四区五区| 中文字幕一区二区三区四区欧美| 草莓视频app18在线视频| 国产午夜福利在线播放| 免费高清视频在线一区| 精品1区2区3区4区| 亚洲人成电影在线观看天堂色| 97在线观看播放| 国产精品羞羞答答在线| 福利视频免费在线观看| 国产成人自拍偷拍| 人妻人人澡人人添人人爽| 国产啪精品视频网站| 成人午夜sm精品久久久久久久| 色偷偷av亚洲男人的天堂| 欧美成人久久久| 国产大片一区| 成人一区而且| 风韵丰满熟妇啪啪区老熟熟女| 激情 小说 亚洲 图片: 伦| 日韩av电影免费| 国产91porn| 日本在线视频网| 亚洲妇熟xx妇色黄| 天天影院图片亚洲| www.99av.com| 五月激情五月婷婷| 激情小说综合区| 91美女片黄在线观看游戏| 国产精品美女视频网站| 亚洲热在线视频| 91影院在线播放| 国产精品午夜av| 国产女主播喷水高潮网红在线| 亚洲一区二区三区四区在线| www国产亚洲精品| 欧美国产日韩在线视频| 欧美中文字幕一区二区三区| 久久夜色精品国产欧美乱极品| 欧美成人一级| 免费精品一区二区| 免费一级欧美片在线观看| 久久影院一区二区| 国产另类第一区| 国模吧视频一区| 国产又粗又猛又爽又黄| 福利91精品一区二区三区| 四虎精品成人免费网站| 免费毛片小视频| 97人澡人人添人人爽欧美| 国产精品免费久久久| 欧美自拍偷拍第一页| 好看的av在线| 免费a级在线播放| 朝桐光av在线一区二区三区| 久久伦理中文字幕| 国产精品久久久久久久久搜平片| 亚洲精品成人悠悠色影视| 韩日a级毛片| 99热免费在线| 国产综合视频在线观看| 91精品欧美久久久久久动漫| 少妇特黄a一区二区三区| 欧美富婆性猛交| 综合久久国产九一剧情麻豆| 午夜影院久久久| 久久福利小视频| 毛片电影在线| 夜夜躁很很躁日日躁麻豆| 91免费国产网站| 亚洲 欧美 成人| 欧美 日韩 国产 高清| 三上悠亚久久精品| 中文字幕一区二区三区人妻四季| 三级黄视频在线观看| 18+激情视频在线| 日韩av一区二区在线| 公共露出暴露狂另类av| 中文字幕在线看视频国产欧美| 好色视频app| 神马影院我不卡午夜| 夜夜揉揉日日人人青青一国产精品| 久久综合九色综合久99| 亚洲大片一区二区三区| 在线观看国产免费视频| 嫩草伊人久久精品少妇av杨幂| 强伦人妻一区二区三区| 国产一区二区三区免费在线观看| 成人a在线观看高清电影| 情趣网站在线观看| 国产精品久久77777| 91精品欧美久久久久久动漫| 精品久久国产字幕高潮| 亚洲韩日在线| 在线观看完整版免费| 国产麻豆高清视频在线第一页| 黄网在线免费看| 羞羞色午夜精品一区二区三区| 少妇精品一区二区三区| 午夜国产福利在线| 国产h片在线观看| 亚洲电影激情视频网站| 日韩小视频在线播放| 中文字幕一区二区三区四区欧美| 免费成人深夜夜行网站视频| 在线免费不卡视频| 国产黄色精品| 九九爱精品视频| 91亚洲欧美激情| 成人免费毛片日本片视频| 日韩脚交footjobhdboots| 免费av一级电影| 日本一欧美一欧美一亚洲视频| 中文字幕日韩高清在线| 国产视频一区在线| av小次郎收藏| 午夜在线不卡| 亚洲国产成人va在线观看天堂| 欧产日产国产精品视频| 高清国产午夜精品久久久久久| 美女被男人操网站| 日本韩国一区二区三区| 九一九一国产精品| 日韩成人一级片| 国产美女精品在线| 日韩高清不卡在线| 亚洲精品98久久久久久中文字幕| 日本黄色a视频| 极品尤物久久久av免费看| 456亚洲精品成人影院| 99久久免费国产精品| 国产亚洲a∨片在线观看| 在线观看免费视频一区二区三区| 色av中文字幕| 亚洲第一精品在线观看| 亚洲国产一区自拍| 国产麻豆剧果冻传媒视频杜鹃| 欧美国产专区| 婷婷四房综合激情五月| 一区二区三区我不卡| 任你操这里只有精品| 暖暖影院日本高清...免费| 欧美黄色小说| 亚洲精品www久久久| 精品无码人妻一区二区三区品| 久久久国产91| 97色在线播放视频| 久久99国产精品成人| 天堂社区日本电影超碰| 国产精品夫妻激情| 色综合一区二区日本韩国亚洲| 五月天激情视频在线观看| 成人影院中文字幕| 亚洲精品久久久| 色av男人的天堂免费在线| 添女人荫蒂视频| 亚洲精品久久久久久久蜜桃臀| 性孕妇free特大另类| 久久综合中文字幕| 麻豆国产尤物av尤物在线观看| 国产一区一区三区| 丝袜在线视频| 99久久久国产精品免费蜜臀| 不卡在线一区二区| 在线观看免费观看在线| 日韩欧美亚洲成人| 你懂的在线播放| 欧美日韩黄视频| 国产日韩欧美高清在线| 五月婷婷激情综合| 亚洲日本在线看| 91一区一区三区| 欧洲精品二区| 97精品一区二区三区| 色欲av无码一区二区人妻| 日韩专区视频| 久久男女视频| 亚洲精品专区| 欧美激情亚洲天堂| 大陆av在线播放| 开心丁香婷婷深爱五月| www.日韩在线| 欧美日韩免费做爰视频| 国产乱码精品一区二区| 91欧美国产| 久久中文字幕免费| xxx免费观看| 成人av电影免费观看| 毛片一级免费一级| 97超碰人人模人人爽人人看| 亚洲一区二区三区精品在线观看| 国产嫩草一区二区三区在线观看| 久久亚洲成人| 国产成人99久久亚洲综合精品| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久久久第一福利| jizz亚洲女人高潮大叫| 日韩高清在线电影| 国产一二精品视频| 欧美午夜无遮挡| 亚洲精品国产综合区久久久久久久| 97精品超碰一区二区三区| 99精品综合| 亚洲 另类 春色 国产| 国产无码精品一区二区| 久草视频精品在线| 亚洲精品毛片一区二区三区| 自拍日韩亚洲一区在线| 欧美特级黄色片| 在线亚洲欧美日韩| 韩国成人漫画| 亚洲中文字幕久久精品无码喷水| 久久久久国产精品嫩草影院| 欧美激情 国产精品| 天堂资源中文在线| 欧美在线精品一区二区三区| 亚洲精选av| 久久国产精品影片| 666av成人影院在线观看| 亚洲成人网上| 国产中文一区二区三区| 国产区av在线| 8mav模特福利视频在线观看| 午夜视频在线观看一区二区三区| 成人在线视频网址| 侵犯稚嫩小箩莉h文系列小说| 91麻豆精品一区二区三区| 试看120秒一区二区三区| 国产原厂视频在线观看| 欧美色图色综合| 亚洲综合色婷婷在线观看| 亚洲久久视频| 成人影视免费观看| 亚洲第一成人网站| а√天堂资源地址在线下载| 成人av手机在线观看| 国产在线青青草| 久久9精品区-无套内射无码| 在线三级中文| 亚洲色欲色欲www| 久久久久久电影|