pjsip win32启用视频通话

http://yeyingxian.blog.163.com/blog/static/34471242013101835444648/


需要下载其他几个额外的库以及sdk来编译pjsip,使得其支持视频通话

Windows SDK Update for Windows Vista
http://www.microsoft.com/en-us/download/details.aspx?id=14477
ffmpeg win32下的库
http://ffmpeg.zeranoe.com/builds/
sdl的devel库
http://www.libsdl.org/download-2.0.php

安装完Windows SDK以后,会有一个“Integrate Windows SDK with Visual Studio 2005”的工具,可以自动设置vc2005的头文件和库文件路径。但是sdl、ffmpeg的头文件、库文件要手动添加到vc++的目录中。
把avutil-52.dll、avcodec-55.dll、avformat-55.dll、SDL2.dll等动态库拷贝到pjsip-apps\bin

pjsip的config_site.h需要定义以下宏,重新编译
 
    

#define PJMEDIA_HAS_VIDEO               1
#define PJMEDIA_HAS_FFMPEG               1
#define PJMEDIA_VIDEO_DEV_HAS_SDL       1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW     1

其中PJMEDIA_HAS_VIDEO是视频的总开关,PJMEDIA_HAS_FFMPEG是视频的编解码codec,PJMEDIA_VIDEO_DEV_HAS_SDL使用SDL作视频的回放,PJMEDIA_VIDEO_DEV_HAS_DSHOW使用DSHOW作为视频的采集(号称DSHOW的视频回放部分尚未完善)。即使没有DSHOW作为视频采集,pjsip默认也有一个Colorbar的采集设备,显示彩条信号,用于测试。

为了在通话中使用视频,需要在pjsua的命令行中做以下设置
vid enable               ; 打开视频
vid acc autotx on        ; 即使打开了视频,默认视频也不会自动开始传输。要修改该设置
vid acc autorx on        ; 即使接收到了视频,默认也不会播放,要修改该设置
vid call tx off 1          ; 关闭视频发送
vid call tx on 1          ; 打开视频发送

使用m命令进行呼叫,接通后就可以看到视频啦
 
其他视频参数设置
vid codec size H264 320 240  ; H.264的分辨率设置成320*240
vid codec fps H264 5 1       ; H.264的帧率设置成5
vid codec bw H264 100 100    ; H.264的平均和最大码率都设置成100
vid dev prev on -1           ; 打开采集的设备的预览窗口

参考
http://trac.pjsip.org/repos/wiki/Video_Users_Guide


sip协议应答码汇总详解-sip协议错误代码详解    http://www.xmsdn.net/pjsip/sip-error-code/


你可能感兴趣的:(pjsip win32启用视频通话)