Openh264 compiling using PJSIP

偶尔善良 提交于 2019-12-11 12:16:24

问题


I am trying to build pjsip project with openh264 lib. Everything works fine except openh264 is not being detected by pjsip ./configure-android

this is my config_site.h

/* Activate Android specific settings in the 'config_site_sample.h' */
#define PJ_CONFIG_ANDROID 1
#include <pj/config_site_sample.h>
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_OPENH264_CODEC 1

I am getting following log

Using OpenH264 prefix... /home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... no

As it is not detected by ./configure-android my app is crashing at runtime saying lib not found for openh264.

I am on ubuntu 14.04 32 bit.

Any suggestions.


回答1:


I just encountered a similar issue. In the following, I refer to the directory, I downloaded and extracted OpenH264 to, as path-to-openh264. I created a subdirectory android within that folder and modified OpenH264's Makefile by setting PREFIX=android. Afterwards running the following commands to build OpenH264 solved the issue for me:

make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm
make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm clean
make install OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm

The resulting libopenh264.so file should end up in the directory path-to-openh264/android/lib/. In order to configure pjsip I used the following command:

APP_PLATFORM=android-14 ./configure-android --with-openh264=<path-to-openh264>/android

The following StackOverflow thread lead me to the right direction:

building openh264 for android platform in x86

The reason for this issue was, that I ran the make install command without the command line parameters at first. This caused the native library file to be created for the wrong ABI (the default one, which is armeabi-v7a). When building pjsip for the armeabi ABI, it didn't recognize the library, because it was built for a different ABI. At least this is what I suppose.




回答2:


http://trac.pjsip.org/repos/ticket/1758

  • modify the "prefix" in Makefile
  • run "make install ARCH=armeabi"
  • run "./configure-android --with_openh264=/path/to/prefix/folder"



回答3:


Actually i faced that problem too.

Solution:

step 1:go to your openh264 directory and create a folder named "android"

step 2: open makefile and set prefix

PREFIX=/your_path/openh264-1.0.0/android

step3:then build openh264 using this command

make OS=android NDKROOT=/your_path/android-ndk-r10d TARGET=android-17 APP_ABI=armeabi

step4: now build pjsip using this command

TARGET_ABI=armeabi APP_PLATFORM=android-12 ./configure-android --use-ndk-cflags --with-openh264=/your_path/openh264-1.0.0/android

hope this time you will see

Using OpenH264 prefix... 
/home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... ok


来源:https://stackoverflow.com/questions/32972912/openh264-compiling-using-pjsip

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!