使用海思arm-hisiv100nptl-linux交叉编译
一、准备“live555”源码
下载 “live555-latest.tar"
二、解压、编译并安装“live555”
tar -zxvf live555-latest.tar
cd live
通过改写"config.armlinux"文件保存为我们的makefile配置文件"config.hi3531"再进行编译
最新版本的live555库已经更正了以前的一些错误,请详细比对
CROSS_COMPILE?=arm-hisiv100nptl-linux-
COMPILE_OPTS =$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED
C =c
C_COMPILER =$(CROSS_COMPILE)gcc
C_FLAGS =$(COMPILE_OPTS)
CPP =cpp
CPLUSPLUS_COMPILER =$(CROSS_COMPILE)g++
CPLUSPLUS_FLAGS =$(COMPILE_OPTS) -Wall -DBSD=1
OBJ =o
LINK =$(CROSS_COMPILE)g++ -o
LINK_OPTS =
CONSOLE_LINK_OPTS =$(LINK_OPTS)
LIBRARY_LINK =$(CROSS_COMPILE)ar cr
LIBRARY_LINK_OPTS =$(LINK_OPTS)
LIB_SUFFIX =a
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
EXE =
三、生成makefile并编译安装
保存我们的config.3531,后缀即为我们生成makefile的参数
./genMakefile 3531
make
make install
四、测试
进入live/testProgs文件夹,可以看到已经生成的各种示例程序。使用服务端live555MediaServer和客户端testRTSPClient进行测试。
./live555MediaServer
运行后,当前目录下所支持的视频文件将会被自动变成流媒体发送。可以使用vlc进行播放。
./testRTSPClient rtsp://192.168.1.1
运行后,假设192.168.1.1是一个流媒体服务器,请求成功后会出现接收数据的打印信息。
注意:如果服务器需要用户认证信息,直接请求会返回401失败信息,修改testRTSPClient.cpp加入认证就可以成功请求。
另一个示例openRTSP增添了很多配置信息,具体可以参考live555的手册,添加认证的方法如下:
./openRTSP -u admin admin rtsp://192.168.1.1
完成上述工作后live555就已经成功部署到linux中了。
最重要的一点:在编译自己的live555程序时,在调用静态库的时候务必遵守以下调用顺序,否则会出现链接库不成功的情况。
libliveMedia.a
libgroupsock.a
libBasicUsageEnvironment.a
libUsageEnvironment.a