学着搭建流媒体服务器

操作系统:NAME="openEuler",架构:aarch64,CPU 运行模式:64-bit

目前有多个开发源代码可以搭建流媒体服务,但要先依赖gcc和cmake,所以首先安装gcc和cmake,查了一通资料,cmake安装记录如下:

1、依赖环境安装

yum -y install libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev*
2、下载cmake

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

3、解压、编译和安装

tar xzvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap
make -j 8
make install 

4、验证是否安装成功

cmake --version

以上部分原文来源于:https://blog.csdn.net/ghpanxt/article/details/119382195

gcc待更流媒体服务器ZLMediaKit在linux上部署与启动教程 - CherryHua-Blog

三、组建流媒体服务器

参考:组建流媒体服务器(手把手搭建RTSP流媒体服务器)

选取ZLMediaKit这个软件建立服务器服务

ZLMediaKit的github链接:https://github.com/xiongziliang/ZLMediaKit

安装openssl,参考资料:https://www.cnblogs.com/Ressurection-20191320/p/15451804.html

1、查看是否已经安装openssl

2、下载openssl

wget http://www.openssl.org/source/openssl-1.1.1c.tar.gz
tar -zxvf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c
make
make install

3、安装ffmpeg

安装ffmpeg走了很多弯路,最后是按照官网给出步骤进行安装,地址如下:

CompilationGuide/Centos – FFmpeg

为防止网页以后访问不了,简单记录一下

(1)安装环境,就是gcc

# yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
(2)建立一个文件夹放各种库文件
mkdir ~/ffmpeg_sources

 (3)安装各种编译时需要的库

-----NASM-----
cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

-----Yasm-----
cd ~/ffmpeg_sources
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

-----libx264---
cd ~/ffmpeg_sources
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install

-----libx265----
cd ~/ffmpeg_sources
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

-----libfdk_aac-----
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

------libmp3lame----
cd ~/ffmpeg_sources
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install

-----libopus--------
cd ~/ffmpeg_sources
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

-----libvpx--------
cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install


按照官网一步一步下来才能正确解释h265、h264两种编码

(4)安装ffmepg

------FFmpeg-----
cd ~/ffmpeg_sources
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs=-lpthread \
  --extra-libs=-lm \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libfdk_aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
make
make install
hash -d ffmpeg

5、搭建RTSP流媒体服务器

(1)在/home/中创建一个文件夹,进入目录然后下载

mkdir ZLMediaKit_Stream_Server
cd ZLMediaKit_Stream_Server
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit.git
cd ZLMediaKit
git submodule update --init

非常重要的命令(不要忘记输入):git submodule update --init

(2)构建工程

mkdir build
cd build
cmake ..
make -j4

make完成后界面

 (3)开启服务

重回/ZLMediaKit/文件夹,输入以下指令

cd release/linux/Debug
./MediaServer -d &

出现如下界面

查看MediaServer相关的命令,输入命令:

./MediaServer -h

如果端口被占用,则修改配置文件,文件在./MediaServer同一目录,使用vi命令修改内容

(6)测试

本人目前使用win7系统的台式机,下载一个vlc软件,安装好

在服务器安装好ffmpeg的文件夹输入命令如下

ffmpeg -re -i /root/test.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

显示

 台式机打开vlc播放器输入流地址,无法播放,同时服务器显示如下:

  以为不成功出错,到处找这个broken pipe的解决方案,直到突然想起是否服务器端口未开放,查看端口情况,554端口是开放的,再查防火墙,发现防火墙已开启,但没有相应开放的策略,于是添加策略,具体做法参考:OpenEuler 防火墙放通端口 (以 8084 为例) - 简书

开放防火墙后,再用vlc播放,终于成功

 以上就是部署的国产,前后花费我3天时间,查找大量的资料,不过最后能成功实现还是挺开心的,ffplay在ffmpeg中不是默认安装的东西,还需要SDL2的支持,目前还没实现成功编译出来,等搞出来再记录下来吧。

猜你喜欢

转载自blog.csdn.net/lalee/article/details/129244861
今日推荐