搭建流媒体服务器

搭建流媒体服务器

引言

这两天在学习流媒体相关的知识,下面是搭建流RTMP媒体服务器的过程。

准备

linux服务器一台,MP4格式影片一部。

ffmpeg、yasm、lame工具安装部署包。nginx及ngix的rtmp码流插件包

linux的公共组件包pcre-8.44及openssl-1.1.1k。

工具包准备

下载yasm-1.3.0.tar.gz

下载lame-3.99.4.tar.gz

下载ffmpeg

下载nginx

下载openssl-1.1.1k

下载nginx-rtmp-module

下载pcre

下面是我准备好的安装文件,可以通过上面的链接去下载新版本,或者直接去RTMP下载我使用的相同版本。

1619963816999

安装

解压并安装yasm汇编器

1
2
3
4
5
tar -xvzf yasm-1.3.0.tar.gz //解压
cd yasm-1.3.0 //进入解压目录
./configure //配置安装环境
make
make install

yasm –version 可以查看到安装的结果,说明安装成功。

解压并安装解码器lame

1
2
3
4
5
tar -zxvf lame-3.99.4.tar.gz
cd lame-3.99.4
./configure --enable-shared --prefix=/usr
make
make install

配置PATH

vi /etc/profile
在文件末尾输入下面两句:
export ENCODER_PATH=/usr
export PATH=${ENCODER_PATH}/bin:$PATH

source /etc/profile

1619964272179

lame –version 可以查看到安装的结果,说明安装成功。

解压并安装ffmpeg

新建ffmpeg 安装目录/root/apps/ffmpeg4_3(这是我创建的安装目录),下面–prefix可以对应改正自己创建的安装目录。

1
2
3
4
5
tar -xvzf ffmpeg-4.3.2.tar.xz
cd ffmpeg-4.3.2
./configure --prefix=/root/apps/ffmpeg4_3 --enable-gpl --enable-shared --enable-libmp3lame
make
make install

安装完成后到安装目录下可以看到bin;include;lib;share四个文件夹:

1619957813779

配置PATH

vi /etc/profile
在文件末尾输入下面两句:
export FFMPEG_PATH=/root/apps/ffmpeg4_3
export PATH=${FFMPEG_PATH}/bin:$PATH

source /etc/profile

1619964281618

ffmpeg –version 可以查看到安装的结果,说明安装成功。

但是这个时候很有可能会打印下面的错误:

ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory

这是因为lib目录没有加载链接到系统库中,系统ld目录列表在/etc/ld.so.config中,这里面引用了/etc/ld.so.conf.d/下面所有的.conf文件。所以我们要在这创建ffmpeg.conf文件,并且写入/root/apps/ffmpeg4_3/lib,然后执行ldconfig

再ffmpeg –version 查看版本。

如果进一步出现下面的报错,就在ffmpeg.config中添加/usr/local/lib

ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory

安装部署Nginx

安装nginx

解压文件

1
2
3
4
tar -xvzf nginx-1.19.10.tar.gz
tar -xvzf openssl-1.1.1k.tar.gz
unzip nginx-rtmp-module-master.zip
tar -xvvf pcre-8.44.tar.bz2

进入nginx的解压路径,进行编译与安装

1
2
3
4
5
6
7
8
9
10
11
./configure --prefix=/usr/local/src/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module --with-pcre=../pcre-8.44 --with-openssl=../openssl-1.1.1k --without-http_gzip_module
make
make install

vi /etc/profile # 打开启动配置文件添加nginx路径配置
# 在结尾添加下面两句
export NIGIX_PATH=/usr/local/src/nginx
export PATH=${NIGIX_PATH}/sbin:$PATH

source /etc/profile # 重新加载配置
nginx -V #查看安装结果

进行rtmp模块配置

vi /usr/local/src/nginx/conf/nginx.conf 添加下面trmp模块。

1
2
3
4
5
6
7
8
9
10
11
12
rtmp {
server {
listen 1935; #端口号
chunk_size 4000;
application hangrtmp { #推流请求路径
live on; #开启实时
hls on; #开启hls
hls_path /usr/local/src/nginx/html/hangrtmp; #推流路径
hls_fragment 5s; #每个TS文件包含5秒的视频内容
}
}
}

1619963518159

启动nginx

1
2
3
cd /usr/local/src/nginx/sbin
./nginx
lsof -ni:1935

推流测试

ffmpeg -re -i abc.mp4 -flvflags no_duration_filesize -c copy -f flv rtmp://服务器ip:1935/hangrtmp

1619962905747

看到上面的结果说明安装配置成功

如果出现下面错误,请在腾讯云服务器管理中放开端端口访问权限。

1634977828788

VLC进行网络串流播放

windows下载vlc-3.0.12

媒体-打开网络串流-输入rtmp://服务器ip:1935/hangrtmp-播放

1619963184547



关注博客或微信搜索公众号多媒体与图形,获取更多内容,欢迎在公众号留言交流!
扫一扫关注公众号
作者

占航

发布于

2021-05-02

更新于

2023-10-04

许可协议

评论