pjsip(2.4.5)增加视频功能
来源:互联网 发布:javascript decorator 编辑:程序博客网 时间:2024/05/16 01:59
pjsip(2.4.5)增加视频功能
(让需要的人少走一些弯路)
1、程序下载:http://www.pjsip.org/;
2、根据官方建议,windows编译环境选用vs2012 Professional版本,系统win7 64位,采用ffmpeg方式实现视频功能;
3、编译基本的音频功能:在pjproject-2.4.5\pjlib\include\pj下,重命名config_site_sample.h为config_site.h,开始编译,此时仅支持语音;
4、准备工作
(1)下载并安装DX9 SDK,pj官方测试过8、9版本;
(2)SDL2.0库:http://www.libsdl.org/;
(3)ffmpeg:https://ffmpeg.zeranoe.com/builds/,pj官方对2.8版本进行过测试,所以需要找以前的版本,这里并没有从源码编译,而是直接找编译好的dev(提供头文件和lib库)和shared(提供dll,动态编译后程序运行需要)版本 ,如图:
找2.8版本
5、一些修改
(1)config_site.h,加入内容:
#define PJMEDIA_HAS_VIDEO 1//#define PJMEDIA_HAS_OPENH264_CODEC1//#define PJMEDIA_HAS_LIBYUV1#define PJMEDIA_VIDEO_DEV_HAS_SDL 1#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1#define PJMEDIA_HAS_FFMPEG 1
(2)去pj官网更新文件ffmpeg_util.h和ffmpeg_util.c,2.4.5发行版中这俩文件并不和ffmpeg2.8版本匹配;
(3)需要头文件inttypes.h、stdint.h,通常位于:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include;
6、开始编译
你所需要的东西理论上都已准备好,将一些需要的库和头文件加入搜索路径,如pjmedia_videodev项目需添加SDL和ffmpeg的头文件路径及lib库路径,一些test工程或samples工程编译不过去可忽略。
7、创建一个MFC工程,实现视频预览功能核心代码
pjsua_vid_preview_param parm;pjsua_vid_preview_param_default(&parm);parm.rend_id = PJMEDIA_VID_DEFAULT_RENDER_DEV;parm.show = PJ_TRUE;pj_status_t r = pjsua_vid_preview_start(PJMEDIA_VID_DEFAULT_CAPTURE_DEV,&parm);
8、实现视频呼叫
(1)账户设定
acc_cfg.videoConfig.autoShowIncoming = true; //自动接收并显示来的视频流acc_cfg.videoConfig.autoTransmitOutgoing = true; //自动向外传输视频流acc_cfg.videoConfig.defaultCaptureDevice = PJMEDIA_VID_DEFAULT_CAPTURE_DEV;(2)视频接听
pjsua_call_setting call_setting;pjsua_call_setting_default(&call_setting);call_setting.vid_cnt = 1;pjsua_call_answer2((*it)->getId(), &call_setting, 200, NULL, NULL);
(3)视频外呼
<span style="font-size:12px;">Call *call = new MyCall(*acc);acc->calls.push_back(call);CallOpParam prm(true);prm.opt.audioCount = 1;prm.opt.videoCount = 1;number=_T("sip:")+number+_T("@")+host;call->makeCall(number.GetBuffer(),prm);</span>
- pjsip(2.4.5)增加视频功能
- PJSIP增加保存AVI文件功能
- pjsip视频
- pjsip视频
- pjsip视频
- PJSIP视频学习
- pjsip中添加视频
- PJSIP视频用户开发
- uchome分享视频增加缩略图功能
- pjsip视频通信开发(上层应用)之拨号键盘下部份拨号和删除功能
- pjsip视频通信开发(上层应用)之拨号界面整体界面功能实现
- pjsip 视频部分学习思路
- pjsip 视频部分学习思路
- pjsip 视频部分学习思路
- pjsip win32启用视频通话
- pjsip,webrtc音视频解决方案
- 陌陌发布新版 增加阅后即焚和短视频功能
- 在Android采集视频过程中增加水印功能实现
- 浅谈PHP进程管理
- 《iOS Human Interface Guidelines》——App Icon
- Android中ExpandableListView中嵌套ListView
- LeetCode #5 Longest Palindromic Substring C# Solution
- linux 命令 查看定时任务crontab
- pjsip(2.4.5)增加视频功能
- PHP实现WebService的简单示例和实现步骤_PHP教程
- C#之重载与覆盖
- 文华语法简介
- ios中三种随机数方法
- Linux DMA 驱动学习总结
- 更新词汇至Unigram词表进行识别
- 欧拉函数详解
- nginx源码分析之main