live555编译(arm版本)

刚接触IPC行业,准备学习rtsp server,rtsp常用的开源项目是live555


1、简介

是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。

2、下载

点击打开链接

3、移植

3.1、配置交叉编译选项

修改配置文件config.armlinux,只需要修改第一行配置交叉编译工具为自己所用的平台

CROSS_COMPILE?=arm-hisiv100nptl-linux-  

保存。

3.2、生成makele 

# ./genMakefiles armlinux

3.3、交叉编译与安装

# make; make install

4、测试

将mediaServer目录下面的live555MediaServer拷贝至ipc环境下,运行

在windows平台上,通过VLC media player软件中打开网络串流输入地址:rtsp://172.18.197.152/test.264可以点播视频文件

172.18.197.152 IPC的地址,test.264是放在运行live555MediaServer目录下的视频文件

备注:

运行之前,拷贝在运行目录下放置.264后缀的视频文件。

live555MediaServer的运行依赖C++库libstdc++.so.6,该库可以在hisi-SDK中可以找到,拷贝进ipc,用命令export LD_LIBRARY_PATH=./添加库的环境变量。

问题:在make时报错了,错误信息如下:

In file included from MPEG4GenericRTPSink.cpp:22:
include/Locale.hh:47: fatal error: xlocale.h: No such file or directory
compilation terminated.
make[1]: *** [MPEG4GenericRTPSink.o] Error 1
make[1]: Leaving directory `/mnt/hgfs/share/live555/live/liveMedia'
make: *** [all] Error 2


原因:

由于海思使用的是uClinux,并没有xlocale.h这个头文件,而live555内部的一个locale模块调用了(见liveMeida/locale.hh),因此通过编译选项把他去掉。

解决:

在COMPILE_OPTS选项末尾加入-DLOCALE_NOT_USED选项,保存,重新运行./genMakefile ,生成makefile 之后重新编译,可以正常通过

在 Android 平台编译 Live555 需要进行以下几个步骤: 1. 下载 Live555 的源码 可以从 Live555 的官网下载源码包,也可以从 GitHub 上下载。 2. 配置交叉编译环境 由于 Live555 是一个 C++ 库,需要使用交叉编译工具链进行编译。你需要下载并安装 Android NDK,并设置好环境变量。 3. 修改 Live555 的配置文件 进入 Live555 的源码目录,找到 `config.Android` 文件,将其中的变量设置为 Android 平台的交叉编译工具链路径和库路径。例如: ``` ANDROID_NDK=/path/to/android-ndk ANDROID_SDK=/path/to/android-sdk ANDROID_API=android-21 ANDROID_ARCH=arch-arm ANDROID_TOOLCHAIN=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 ANDROID_LIB=$ANDROID_NDK/platforms/$ANDROID_API/$ANDROID_ARCH/usr/lib ``` 4. 编译 Live555 库 在命令行中执行以下命令进行编译: ``` ./genMakefiles android make ``` 编译完成后,会生成一个 `live` 目录,其中包含了编译好的库文件和头文件。 5. 将 Live555 库集成到 Android 项目中 将 `live` 目录下的库文件和头文件拷贝到 Android 项目的 jni 目录下,并在 Android.mk 文件中添加以下内容: ``` LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := live555 LOCAL_SRC_FILES := libliveMedia.a libBasicUsageEnvironment.a libgroupsock.a libUsageEnvironment.a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_STATIC_LIBRARY) ``` 其中,`LOCAL_SRC_FILES` 指定编译好的库文件,`LOCAL_EXPORT_C_INCLUDES` 指定头文件路径。然后在需要使用 Live555 的代码中引用 `live555` 模块即可。 以上就是在 Android 平台编译 Live555 的基本步骤。由于 Live555 的配置比较复杂,如果遇到问题可以参考 Live555 的官方文档或者在社区中寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值