【问题标题】:Openh264 compiling using PJSIP使用 PJSIP 编译 Openh264
【发布时间】:2015-10-06 14:45:09
【问题描述】:

我正在尝试使用 openh264 库构建 pjsip 项目。一切正常,除了 pjsip ./configure-android 没有检测到 openh264@

这是我的 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

我正在关注日志

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

由于./configure-android 未检测到它,我的应用程序在运行时崩溃,说找不到 openh264 的 lib。

我在 ubuntu 14.04 32 位。

任何建议。

【问题讨论】:

  • 奇怪的是我可以使用 ./configure 而不是 ./configure-android

标签: android pjsip openh264


【解决方案1】:

我刚刚遇到了类似的问题。在下文中,我引用了我下载并解压缩 OpenH264 到的目录,为path-to-openh264。我在该文件夹中创建了一个子目录android,并通过设置PREFIX=android 修改了OpenH264 的Makefile。之后运行以下命令来构建 OpenH264 为我解决了这个问题:

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

生成的libopenh264.so 文件应最终位于目录path-to-openh264/android/lib/ 中。为了配置 pjsip,我使用了以下命令:

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

以下 StackOverflow 线程将我引向正确的方向:

building openh264 for android platform in x86

这个问题的原因是,我一开始在没有命令行参数的情况下运行make install 命令。这导致为错误的 ABI(默认 ABI,即 armeabi-v7a)创建本机库文件。在为 armeabi ABI 构建 pjsip 时,它无法识别该库,因为它是为不同的 ABI 构建的。至少我是这么认为的。

【讨论】:

  • 感谢三句话和神奇的词“清洁”和“安装”!
【解决方案2】:

其实我也遇到过这个问题。

解决方案:

第一步:进入你的openh264目录并创建一个名为“android”的文件夹

第二步:打开makefile并设置前缀

PREFIX=/your_path/openh264-1.0.0/android

step3:然后使用这个命令构建openh264

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

第 4 步:现在使用此命令构建 pjsip

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

希望这次你会看到

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

【讨论】:

  • 这个应该被接受的答案。 6年后谢谢你:)
【解决方案3】:

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

  • 修改Makefile中的“前缀”
  • 运行“make install ARCH=armeabi”
  • 运行“./configure-android --with_openh264=/path/to/prefix/folder”

【讨论】:

  • 我已经完成了上述步骤。我有以下命令。 TARGET_ABI=armeabi-v7a APP_PLATFORM=android-19 ./configure-android --use-ndk-cflags --with-openh264=/home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib --with-libyuv=/home /user_name/PJSIPTOOLS/libyuv-android-master/jni --with-ffmpeg=/home/user_name/android-ndk-r10e/sources/ffmpeg-2.8/android/armeabi-v7a 这个命令不起作用
  • 在 openh264 文件夹中运行“make install OS=android NDKROOT=/path/to/android-ndk/TARGET=android-21 APP_ABI=armeabi ARCH=arm”。之后,运行“./configure-android --with_openh264=/path/to/prefix/folder”
  • 试过也没用。我不得不使用github.com/alexbbb/pjsip-android-builder 项目来构建pjsip,并且我能够成功地做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多