Skip to content

v4_EN_SrsLinuxArm

winlin edited this page Jun 20, 2021 · 24 revisions

HOME > EN > ARM

SRS for linux-arm

How to run SRS on ARM pcu?

  • Run SRS on ARM: Client can play stream from ARM server.

Why run SRS on ARM?

The use scenario:

  • Run SRS on ARM server, see #1282.
  • Crossbuild for ARM embeded device, see #1547.

Ubuntu Cross Build SRS

Cross build ST and OpenSSL on Ubuntu16.

Build SRS in docker(Ubuntu 16(xenial)):

cd ~/git/srs/trunk && docker run --rm -it -v `pwd`:/srs -w /srs \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:ubuntu16 bash

Install toolchain(optional), for example Acqua or RoadRunner board

apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

Cross build SRS:

./configure --cross-build --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
    --ar=arm-linux-gnueabihf-ar --ld=arm-linux-gnueabihf-ld --randlib=arm-linux-gnueabihf-randlib &&
make

Run SRS on ARMv7 docker:

cd ~/git/srs/trunk && docker run --rm -it -v `pwd`:/srs -w /srs \
    -p 1935:1935 -p 1985:1985 -p 8080:8080 armv7/armhf-ubuntu \
    ./objs/srs -c conf/console.conf

Publish stream:

ffmpeg -re -i doc/source.200kbps.768x320.flv -c copy \
    -f flv -y rtmp://127.0.0.1:1935/live/livestream

Play stream:http://ossrs.net/srs.release/trunk/research/players/srs_player.html?app=live&stream=livestream&server=localhost&port=1935&autostart=true&vhost=localhost

image

Use Other Cross build tools

SRS configure options for cross build:

root@4c618f90fc4c:/tmp/git/srs/trunk# ./configure -h
Toolchain options:          @see https://github.com/ossrs/srs/issues/1547#issuecomment-576078411
  --cross-build             Enable crossbuild for ARM/MIPS.
  --cc=<CC>                 Use c compiler CC, default is gcc.
  --cxx=<CXX>               Use c++ compiler CXX, default is g++.
  --ar=<AR>                 Use archive tool AR, default is ar.
  --ld=<LD>                 Use linker tool LD, default is ld.
  --randlib=<RANDLIB>       Use randlib tool RANDLIB, default is randlib.
  --extra-flags=<EFLAGS>    Set EFLAGS as CFLAGS and CXXFLAGS. Also passed to ST as EXTRA_CFLAGS.

RaspberryPi

User is able to build and run SRS on RespberryPI. Please don't use crossbuild.

ARM Server: armv7, armv8(aarch64)

User is able to build and run SRS on ARM servers. Please don't use crossbuild.

For armv8 or aarch64, user should specify the arch, if the CPU arch is not identified automatically, see #1282:

./configure --extra-flags='-D__aarch64__' && make

Winlin 2014.11

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally