接着上篇文章来讲,参看:LIVE555再学习 -- Linux 下编译
下载源码、文件介绍部分不再介绍。主要看配置编译部分。
三、配置编译
DM368 的交叉编译器为 arm-none-linux-gnueabi-gcc
如果您的目标平台没有“config.<os-platform>”文件,请尝试使用其中一个现有文件作为模板
因此我们创建一个config.dm368,内容可以参考config.armlinux
# cat config.dm368
CROSS_COMPILE?= arm-none-linux-gnueabi-
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
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 =
==============================================================================
修改说明:
参看:hi3507/hi3515交叉编译live555
第一个 CROSS_COMPILE 好理解更改为交叉编译器
第二个 CPLUSPLUS_FLAGS
在 dm368 上操作不做改变是没有问题的
但是在 Hi3516A 上就不是这样了,会出现错误:
In file included from MPEG4GenericRTPSink.cpp:22:0:
include/Locale.hh:47:123: fatal error: xlocale.h:没有那个文件或目录
#include <xlocale.h> // because, on some systems, <locale.h> doesn't include <xlocale.h>;
this makes sure that we get both
这个是由于海思使用的是 uClinux,并没有 xlocale.h 这个头文件。
而 live555 内部的一个 locale 模块调用了(见liveMeida/locale.hh),因此通过编译选项把他去掉。
在编译选项上加入 -DLOCALE_NOT_USED 把此模块去掉。
# cat config.hi3516a
CROSS_COMPILE?= arm-hisiv300-linux-
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
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 -DLOCALE_NOT_USED
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 =
==============================================================================
执行:./genMakefiles dm368
运行: make clean && make
然后可以看到 mediaServer 目录下生成文件 live555MediaServer
四、测试
将 live555MediaServer 拷贝到开发板上:
tftp -g -r live555MediaServer 192.168.x.xx
更改权限:
chmod 777 live555MediaServer
执行 live555MediaServer
./live555MediaServer
然后找一个视频文件,放在和 live555MediaServer同一目录。注意视频格式,要是上面所支持的。
然后打开 VLC,媒体->打开网络串流,输入网络URL。 rtsp://电脑IP地址/<filename>