PJSIP源码编译,支持视频功能

需要的环境及资源:

1.pjproject-2.6源码

2.VS2015

3.SDL 

 

编译过程:

1.首先使用VS2015打开源码,开启视频支持,如下:

   (1)修改pjmedia\include\pjmedia\config.h文件:

     修改PJMEDIA_HAS_VIDEO的值为1, 修改PJMEDIA_HAS_FFMPEG的值为1
     #ifndef PJMEDIA_HAS_VIDEO
     #   define PJMEDIA_HAS_VIDEO              1
     #endif
     #ifndef PJMEDIA_HAS_FFMPEG
     #   define PJMEDIA_HAS_FFMPEG           1
     #endif

   (2)修改pjmedia\include\pjmedia-videodev\config.h文件

      如果在windows平台,打开PJMEDIA_VIDEO_DEV_HAS_DSHOW即可,也就是DirectShow的支持。
      需要安装DirectX,并且更新windows platform sdk。
      如果在linux平台,打开PJMEDIA_VIDEO_DEV_HAS_V4L2即可,也就是video for linux 2的支持

      #ifndef PJMEDIA_VIDEO_DEV_HAS_SDL
      #   define PJMEDIA_VIDEO_DEV_HAS_SDL        1
      #   define PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL    0
      #endif

    #ifndef PJMEDIA_VIDEO_DEV_HAS_QT
    #   define PJMEDIA_VIDEO_DEV_HAS_QT        0
    #endif

    #ifndef PJMEDIA_VIDEO_DEV_HAS_IOS
   #   define PJMEDIA_VIDEO_DEV_HAS_IOS        0
   #endif

   #ifndef PJMEDIA_VIDEO_DEV_HAS_DSHOW
   #   define PJMEDIA_VIDEO_DEV_HAS_DSHOW        1 
   #endif

   #ifndef PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC
   #   define PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC    0
   #endif

   #ifndef PJMEDIA_VIDEO_DEV_HAS_FFMPEG
   #   define PJMEDIA_VIDEO_DEV_HAS_FFMPEG            0
   #endif

   #ifndef PJMEDIA_VIDEO_DEV_HAS_V4L2
   #   define PJMEDIA_VIDEO_DEV_HAS_V4L2        0
   #endif

 

2.下载SDL(至少需要1.3版本)

下载地址:https://download.csdn.net/download/qq_34572638/11643722

编译生成SDL.lib、SDL.dll, 将SDL.lib拷贝到pjsip工程的lib目录下,SDL.dll拷贝到pjsip工程中的pjmedia\bin目录下,SDL的include中的文件拷贝到pjsip工程中的third_party\SDL目录下(SDL文件夹自己创建的);将SDL配置到pjmedia_test、pjsua项目属性中。

3.其他文件的下载

工程中还需要用到如下的库文件:avcodec.lib、avformat.lib、avutil.lib、swscale.lib、avcodec-55.dll、avformat-55.dll、avutil-52.dll、swscale-2.dll,将静态库文件放到pjsip的lib目录下,将动态库文件放到pjsip的pjmedia\bin目录下

 

开始编译,编译完成后,运行pjmedia\bin目录下的pjmedia-test-i386-Win32-vc14-Debug.exe,就可以看到自己电脑摄像头的画面了。

 

运行pjsip-apps\bin目录下的pjsua-i386-Win32-vc14-Debug.exe,为了在通话中使用视频,需要在pjsua的命令行中做以下设置:

vid enable               ; 打开视频

vid acc autotx on        ; 即使打开了视频,默认视频也不会自动开始传输。要修改该设置

vid acc autorx on        ; 即使接收到了视频,默认也不会播放,要修改该设置

然后使用m命令进行呼叫,对方应答后就建立通讯了,这时对方需要设置如下  vid call tx on 1 ; 打开视频发送,就可以看到对方的传输过来的视频了

其他视频参数设置

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           ; 打开采集的设备的预览窗口

vid call tx off 1          ; 关闭视频发送

pjsip工程下载地址:https://download.csdn.net/download/qq_34572638/11644412

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译PJSIP Android版本,你需要按照以下步骤进行操作: 1. 首先,你需要设置你的编译环境。根据引用和引用,你需要安装Ubuntu 14.04和Android NDK(如android-ndk-r9d-linux-x86_64或android-ndk-r13b)。确保你已经安装了SWIG 2.0.5以上的版本。 2. 接下来,你需要下载PJSIP源代码。根据引用,你可以从官方网站上下载最新版本的源代码。解压缩源代码文件。 3. 修改配置文件。根据引用和引用,你需要在配置文件(config_site.h)中添加一些内容,例如#define PJ_CONFIG_ANDROID 1,如果你需要视频功能,还需要添加#define PJMEDIA_HAS_VIDEO 1。 4. 设置NDK环境变量。根据引用和引用,你需要设置ANDROID_NDK_ROOT环境变量,指向Android NDK的安装路径。 5. 配置PJSIP。根据引用,你可以运行./configure-android命令进行配置。如果你需要视频功能,可以使用./configure-android --with-openh264=/path/to/openh264进行配置,其中/path/to/openh264是你编译openh264成功后生成的androidlib目录的路径。 6. 编译PJSIP。根据引用和引用,运行make dep && make clean && make命令进行编译。静态库和动态库将会在编译完成后生成。 7. 编译Java接口文件。根据引用,进入pjsip-apps/src/swig目录,运行make命令编译Java接口文件。 8. 最后,你可以使用生成的libpjsua2.so和相关的Java文件进行apk开发。根据引用,libpjsua2.so将会被生成在pjsip-apps/src/swig/java/android/app/src/main/jniLibs目录下,Java文件将会生成在pjsip-apps/src/swig/java/android/app/src/main目录下。 请注意,编译过程可能会因为不同环境和版本的差异而有所不同,如果遇到问题,可以参考官方文档或社区的帮助资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pjsip for Android的编译](https://blog.csdn.net/u012247418/article/details/80161658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android 编译PjSip](https://blog.csdn.net/ou_yb2006/article/details/89354643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [PJSIP-Android-Compilation:PJSIP-Android平台编译后的Hello World](https://download.csdn.net/download/weixin_42138139/19728536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值