如何基于Nginx搭建流媒体服务器
HLS是最常见的视频流媒体协议,HLS是一种自适应流媒体技术,可以根据用户的设备和网络条件对播放媒体内容,以获得最佳播放性能。
Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器。以ubuntu为力,下面介绍如何安装使用nginx Rtmp 插件的步骤。
1.更新apt库
复制
apt-get update1.
2.安装ffmpeg等所需要的软件
复制
apt-get install -y git build-essential ffmpeg libpcre3 libpcre3-dev libssl-dev zlib1g-dev1.
3.下载RTMP模块
复制
git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git1.
4.下载并解压Nginx
复制
wget http://nginx.org/download/nginx-1.17.6.tar.gztar -xf nginx-1.17.6.tar.gzcd nginx-1.17.61.
5.配置Nginx拷贝一份nginx配置文件出来
复制
mv /usr/local/nginx/conf/nginx.confnano /usr/local/nginx/conf/nginx.conf1.
将以下内容复制到nginx.conf文件中:
复制
worker_processes auto;
events {
worker_connections 1024;
}
# RTMP configuration
rtmp {
server
{
listen 1935;
# Listen on standard RTMP
portchunk_size 4000;
application show
{
live on;
# Turn on HLS
hls on;
hls_path /mnt/hls/;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmpdeny
play all;
}
}
}
http {
sendfile off;
tcp_nopush on;
directio 512;
default_type application/octet-stream;
server {
listen 8080;
location / {
# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Expose-Headers Content-Length;
# allow CORS preflight requests
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 1728000;
add_header Content-Type text/plain charset=UTF-8;
add_header Content-Length 0;
return 204;
}
types {
application/dash+xml mpd;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /mnt/;
}
}
}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.
6.启动Nginx
复制
/usr/local/nginx/sbin/nginx1.
7.测试
该服务器可以从各种来源进行流式传输,包括静态文件、网络摄像头等。由于上面的步骤中安装了ffmpeg,我们可以将example-vid.mp4视频文件流式传输到http服务http://localhost/show/stream。
复制
ffmpeg -re -i example-vid.mp4 -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://localhost/show/stream1.
8.最后
根据服务的需求,可以将http服务集成到您的应用程序或者网页中。
THE END