使用海思
arm-hisiv100nptl-linux交叉编译
一、准备“live555”源码
项目地址
http://www.live555.com/下载 “live555-latest.tar"
二、解压、编译并安装“live555”
[plain] view plain copy- tar -zxvf live555-latest.tar
- cd live
- 通过改写"config.armlinux"文件保存为我们的makefile配置文件"config.hi3531"再进行编译
最新版本的live555库已经更正了以前的一些错误,请详细比对[cpp] view plain copy- 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的参数
[plain] view plain copy- ./genMakefile 3531
- make
- make install
四、测试
进入live/testProgs文件夹,可以看到已经生成的各种示例程序。使用服务端live555MediaServer和客户端testRTSPClient进行测试。
[plain] view plain copy- ./live555MediaServer
运行后,当前目录下所支持的视频文件将会被自动变成流媒体发送。可以使用vlc进行播放。
[plain] view plain copy- ./testRTSPClient rtsp://192.168.1.1
运行后,假设192.168.1.1是一个流媒体服务器,请求成功后会出现接收数据的打印信息。
注意:如果服务器需要用户认证信息,直接请求会返回401失败信息,修改testRTSPClient.cpp加入认证就可以成功请求。另一个示例openRTSP增添了很多配置信息,具体可以参考live555的手册,添加认证的方法如下:
[plain] view plain copy- ./openRTSP -u admin admin rtsp://192.168.1.1
完成上述工作后live555就已经成功部署到linux中了。
最重要的一点:在编译自己的live555程序时,在调用静态库的时候务必遵守以下调用顺序,否则会出现链接库不成功的情况。[plain] view plain copy- libliveMedia.a
- libgroupsock.a
- libBasicUsageEnvironment.a
- libUsageEnvironment.a
欢迎关注并加入物联网行业联盟,积累行业人脉和资源。