一、首先安装Live555
1、下载源码
由于不能apt-get install,所以先官网下载源码。http://www.live555.com/liveMedia/


解压 tar -zxvf live.2023.07.24.tar.gz
安装可以看这篇博文前部
live555server环境搭建
OpenSSL必须安装
2、生成makefile
安装时如果直接在arm板子上装,生成makefile时就直接写
~/live$ ./genMakefiles linux
# 查看Makefile
~/live$ cat Makefile
##### Change the following for your environment:
COMPILE_OPTS = $(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
C = c
C_COMPILER = cc
...
不能写成armlinux
~/live$ ./genMakefiles armlinux
# 查看Makefile
~/live$ cat Makefile
##### Change the following for your environment:
CROSS_COMPILE?= arm-elf-
COMPILE_OPTS = $(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
C = c
...
如果选成了armlinux,这样make的时候用的就是交叉编译工具链,仅适用于从x86机器上给arm机器编译。
3、make
make时基本都会遇到test问题
编辑一下这个文件 /live/BasicUsageEnvironment/BasicTaskScheduler.cpp(190行左右)
if (fTriggersAwaitingHandling[i].test()) {
# 将上面这行改为
if (fTriggersAwaitingHandling[i].test_and_set()) {
4、sudo make install
编好了再运行sudo make install之后,就会把头文件放到 /usr/local/include 中,库文件放到 /usr/local/lib 中,不需要添加环境变量。
5、编译
编译demo的时候,在makefile中增加-I和-L就行。
例
文件名:
test_live555.cpp
编译指令:
g++ -I/usr/local/include -I/usr/local/include/groupsock -I/usr/local/include/UsageEnvironment -L/usr/local/lib test_live555.cpp -o test_live555 -lliveMedia -lBasicUsageEnvironment -lgroupsock -lUsageEnvironment -lssl -lcrypto
-lliveMedia -lBasicUsageEnvironment -lgroupsock -lUsageEnvironment 是live555的
-lssl -lcrypto 是OpenSSL的
二、运行demo
我们既然是要做rtsp推流,demo在 live/testProgs/testOnDemandRTSPServer.cpp 中,这个demo功能就是读取本地视频,然后启动RTSP推流服务器。
make的时候已经编译好了,我们可以直接运行。
不过我删减了一些,得自己编译了。拷到test_live555.cpp中,写一个makefile:
#include <liveMedia/liveMedia.hh>
#include <BasicUsageEnvironment/BasicUsageEnvironment.hh>
#include <UsageEnvironment/UsageEnvironment.hh>
#include <GroupsockHelper.hh>
void announceURL(RTSPServer* rtspServer, ServerMediaSession* sms) {
if (rtspServer == NULL || sms == NULL) return; // sanity check
UsageEnvironment& env = rtspServer->envir();
env << "Play this stream using the URL ";
if (weHaveAnIPv4Address(env)) {
char* url = rtspServer->ipv4rtspURL(sms);
env

本文详细描述了如何在ARM板子上安装Live555库,生成适合的makefile,解决make过程中的test问题,以及如何配置RTSP推流服务器,包括运行demo和遇到的问题,如多IP支持和OutPacketBuffer大小调整。
2008

被折叠的 条评论
为什么被折叠?



