http://yeyingxian.blog.163.com/blog/static/34471242013101835444648/
需要下载其他几个额外的库以及sdk来编译pjsip,使得其支持视频通话
Windows SDK Update for Windows Vista
ffmpeg win32下的库
sdl的devel库
安装完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 ; 打开采集的设备的预览窗口
参考