linphone-解决3.2.5版本在Android5.0以前的系统没有H264编码的问题

说明

上个月,我下载当时最新版linphone,tag版本是3.2.5。不知道从哪个版本开始,linphone改了整体的编译方式。重新用python进行编译的方式和部分文件的生成。
这都不是问题,但是,在android5.0以前版本并不支持。从网络上搜索了好多答案,基本上都是说H264不开源,而我下的还是开发版本,所以并没有将libopenh264.so这个不开源的库打包进入。所以导致了,Android5.0以前的版本没有H264编码的问题。

成功之后的界面

解决方法

  1. ./prepare.py -ac 编译所有的文件。
  2. 从网络上下载libopenshh264.so库文件放到libs/文件夹下。

解决思路

这个要特别感谢QQ群:377532905今何在的帮助,这个问题困扰了很久。以前的解决思路将在下篇中给出。

  • 查看logcat输入日志,找到没有链接到lipopenh264.so库
  • 查看java代码,知道缺失代码,需要下载so库的下载地址。
  • 将下载下来的库解压,改名,放到libs文件夹下,即可显示H264编码,并且可用。

解决步骤

1. 打开Debug模式

打开linphone并勾选Debug模式

打开linphone并勾选Debug模式,显示具体的log。

2. 查看logcat,找到问题点

找到问题点

其中有一个加载libmsopenh264.so的地方,其中要动态添加”libopenh264.so”文件。

3. 查看java代码,查找需要缺失的地方

在OpenH264DownloadHelper中,找到了如下代码

    /**
     * Default values
     * nameLib = "libopenh264-1.5.so"
     * urlDownload = "http://ciscobinary.openh264.org/libopenh264-1.5.0-android19.so.bz2"
     * nameFileDownload = "libopenh264-1.5.0-android19.so.bz2"
     */
    public OpenH264DownloadHelper(Context context) {
        userData = new ArrayList<Object>();
        licenseMessage = "OpenH264 Video Codec provided by Cisco Systems, Inc.";
        nameLib = "libopenh264.so";
        urlDownload = "http://ciscobinary.openh264.org/libopenh264-1.5.0-android19.so.bz2";
        nameFileDownload = "libopenh264-1.5.0-android19.so.bz2";
        if(context.getFilesDir() != null) {
            fileDirection = context.getFilesDir().toString();
            Log.i("[OpenH264Downloader] fileDirection =context.getFilesDir().toString() = " + fileDirection);
        }
    }

其中,“http://ciscobinary.openh264.org/libopenh264-1.5.0-android19.so.bz2“就是libopenh264.so代码, 下载下来,解压缩并改名就可以

4.下载so库,放入libs文件夹

放入libs文件夹中, 其中我的设备都是armv7, 放入这个libs下的armv7文件夹中就可以运行。由于没有x86的手机,并没有测试这个。不过我想,应该一样的, 因为链接地址是一样的。

5. 运行,并测试

通过H264编码进行视频通话。OK,成功!好兴奋a。

其中在解决问题之前,我进行了大量的代码排错工作。下篇粘出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵健zj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值