银河麒麟V10
系统信息
FFmpeg
下载源码https://github.com/FFmpeg/FFmpeg/releases/tag/n3.4.11
这里下载tag版,也是笔记时间最新的版本
下载完成后你将得到FFmpeg-n3.4.11.tar.gz压缩包
使用命令tar -xvf FFmpeg-n3.4.11.tar.gz解压这个压缩包,得到FFmpeg-n3.4.11文件夹
tar -xvf FFmpeg-n3.4.11.tar.gz
进入FFmpeg-n3.4.11文件夹执行命令./configure --enable-shared --disable-yasm --prefix=/opt/ffmpeg.n3.4.11,配置FFmpeg的编译信息。表示编译时使用shared,禁用yasm,编译生成文件在/opt/ffmpeg.n3.4.11路径。
./configure --enable-shared --disable-yasm --prefix=/opt/ffmpeg.n3.4.11
执行命令make install安装FFmpeg,这个过程需要一段时间
make install
安装完成后进入/etc/ld.so.conf.d文件夹,执行命令touch ffmpeg.conf,创建FFmpeg的配置文件
cd /etc/ld.so.conf.d
touch ffmpeg.conf
/opt/ffmpeg.n3.4.11/lib
ldconfig
编辑该文件输入/opt/ffmpeg.n3.4.11/lib保存,执行ldconfig命令使其生效
进入/etc文件夹,编辑profile文件,在文件最后添加一行输入export PATH=$PATH:/opt/ffmpeg.n3.4.11/bin并保存,执行命令source /etc/profile使其生效,配置FFmpeg环境变量
cd /etc
profile
export PATH=$PATH:/opt/ffmpeg.n3.4.11/bin
source /etc/profile
然后在命令行里面就可以使用FFmpeg了
Nginx-rtmp
- 此章节是编译一个带rtmp环境的nginx,目前来说可以被弃用了,可以参考笔者的nginx-http-flv编译文章,nginx-http-flv编译中包含了rtmp,比这个功能更全一些。
下载Nginx源码http://nginx.org/en/download.html
笔者这里下载的是nginx-1.16.1
下载完成后你将得到nginx-1.16.1.tar.gz压缩包
执行命令tar -xvf nginx-1.16.1.tar.gz解压nginx压缩包,得到nginx-1.16.1文件夹
使用Git命令在nginx-rtmp模块的仓库中下载源码
这里笔者在GitHub网站上面也下载过tag版本的,但是在安装过程中会有错误,但是在仓库下载最新的代码就可以
git clone https://github.com/arut/nginx-rtmp-module.git
下载完成后你会有nginx-1.16.1和nginx-rtmp-module 2个文件夹
git clone https://github.com/arut/nginx-rtmp-module.git
进入nginx-1.16.1文件夹,执行命令./configure --add-module=../nginx-rtmp-module --with-http_ssl_module配置Nginx安装编译信息,配置编译信息时如果不指定编译路径,默认编译再/usr/local路径下
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module
执行命令make install安装nginx
make install
安装完成后在/usr/local会出现一个nginx文件夹
执行命令/usr/local/nginx/sbin/nginx启动nginx
/usr/local/nginx/sbin/nginx
在浏览器中访问localhost:80,可以看到nginx的主页,说明安装成功
执行命令/usr/local/nginx/sbin/nginx -s stop停止nginx
/usr/local/nginx/sbin/nginx -s stop
进入/usr/local/nginx/conf文件夹,编辑nginx.conf文件
可以修改nginx的默认端口,并且在http节点同级节点添加rtmp服务器的配置,在配置中你可以根据规则配置你的服务器或者参数
rtmp {
server {
listen 81;
chunk_size 4096;
application live {
live on;
}
}
}
完整信息如下
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
rtmp {
server {
listen 81;
chunk_size 4096;
application live {
live on;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
这里添加rtmp节点表示创建rtmp服务器,名称是live,端口是81
执行命令/usr/local/nginx/sbin/nginx启动nginx,如果没有出现错误,就说明配置生效了,可以执行命令netstat -ntulp | grep 81查看rtmp服务器端口是否使用了
这样一个rtmp服务器就开启成功了,服务器地址是rtmp://ip:81/live
VLC
执行命令apt install vlc安装VLC
执行vlc启动VLC客户端软件
推流
使用FFmpeg将本地的一个视频文件循环的往rtmp服务器中推流
ffmpeg -re -stream_loop -1 -i /home/1.mp4 -vcodec copy -f flv rtmp://localhost:81/live/test
执行命令ffmpeg -re -stream_loop -1 -i /home/1.mp4 -vcodec copy -f flv rtmp://localhost:81/live/test命令将本地的1.mp4视频文件循环的往rtmp服务器中推流
看到此信息就说明rtmp流媒体服务器搭建成功
拉流
在VLC中打开网络串流,URL输入推流指定的rtmp地址,本文中的就是[rtmp://localhost:81/live/test]