公司采购了一块全志T7开发板带芯片,用于视频四路推流。根据延时、温度、性能综合考虑,使用FFmpeg+EasyDarwin+T7实行。而T7的芯片和系统无法在开发板上编译源码,所以需要交叉编译。
简单来说,在Ubuntu16.04主系统上交叉编译给全志T7开发板使用的ARM版Easydarwin可执行文件。
首先,T7是2017年发布的,可能这是选择1604的原因。
EasyDarwin
EasyDrawin是高性能开源RTSP流媒体服务器,基于go语言研发,维护和优化:RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、WEB后台管理、分布式负载均衡…
官网: http://www.easydarwin.org/
Github地址: https://github.com/EasyDarwin/EasyDarwin
Release地址: https://github.com/EasyDarwin/EasyDarwin/releases
因为github上并未提供编译好的arm平台程序,只提供了Windows和Linux的x86平台,所以我们需要自己编译。
编译
前提
编译环境
交叉编译工具链:Lichee Linux BSP(由全志提供)
准备
GO
1、从官方下载软件包:https://golang.google.cn/dl/
2、解压:
1
| sudo tar -C /usr/local -xzf go1.14.3.linux-amd64.tar.gz
|
3、设置环境变量
1 2
| export PATH=$PATH:/usr/local/go/bin export GOPATH=~/go
|
GOPATH
必须要有
4、测试
node
1、下载软件包:https://nodejs.org/en/download/
注意:不能是pre版的,必须是正式发布版。
2、解压:
1
| sudo tar -xvJf node-v14.12.0-linux-x64.tar.xz
|
3、设置环境变量
1
| export PATH=$PATH:/usr/local/go/bin:/usr/local/node-v14.12.0-linux-x64/bin
|
4、测试
依赖
1 2 3 4
| go get -u -v github.com/kardianos/govendor go get -u -v github.com/penggy/gobuild sudo npm i -g apidoc sudo npm i -g rimraf
|
源码编译
源码
1 2 3 4
| cd $GOPATH/src/github.com/ mkdir EasyDarwin && cd EasyDarwin git clone https://github.com/EasyDarwin/EasyDarwin.git --depth=1 EasyDarwin cd EasyDarwin/
|
编译源码
1 2 3 4 5 6
| export PKG_CONFIG_PATH="/home/linkpi/Desktop/t7linux-auto/out/sun8iw17p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/pkgconfig/:"$PKG_CONFIG_PATH export GOARCH=arm export CGO_ENABLED=1 export CC=arm-linux-gnueabi-gcc export GOOS=linux npm run build:lin
|
这个时候会报错:
1 2
| routers/record.go:106:13: constant 4294967295 overflows int
|
将/home/linkpi/go/src/github.com/EasyDarwin/EasyDarwin/routers/record.go
的106行修改一下:
1 2
| form.Limit = math.MaxInt32
|
继续编译出结果:
1 2
| $ file easydarwin easydarwin: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=093393b920681cf78401ae55b0b20780ed776f3b, stripped
|
结果文件
下载地址:蓝奏 8M
CSDN:EasyDarwin aarch64 8.1.0自编译版软件