Linux-Nginx+rtmp+ffmpeg搭建流媒体服务器

Linux-Nginx+rtmp+ffmpeg搭建流媒体服务器,第1张

概述Nginx+rtmp+ffmpeg搭建流媒体服务器 说明:   nginx搭建流媒体服务需要用到 nginx-rtmp-module 模块 具体 *** 作步骤: 安装nginx (1)下载第三方扩展模块nginx-rtmp-module # mkdir module && cd module   //创建一个存放模块的目录# wget https://github.com/arut/n Nginx+rtmp+ffmpeg搭建流媒体服务器

说明:

  Nginx搭建流媒体服务需要用到 Nginx-rtmp-module 模块

具体 *** 作步骤:

安装Nginx

(1)下载第三方扩展模块Nginx-rtmp-module

# mkdir module && cd module          //创建一个存放模块的目录# wget https://github.com/arut/Nginx-rtmp-module/archive/master.zip        //下载模块# unzip master.zip                //解压# ls Nginx-rtmp-module-master/         //查看模块目录

(2)编译安装Nginx(说明:此处由于我这边已有lnmp运行项目的环境,直接动态添加的 Nginx-rtmp-module模块; 动态参加可参考:这里)

# yum -y install pcre-devel openssl openssl-devel        //安装依赖# wget http://Nginx.org/download/Nginx-1.12.2.tar.gz        //下载Nginx包# tar xf Nginx-1.12.2.tar.gz# ./configure --prefix=/opt/Nginx-1.9.5 --add-module=/root/module/Nginx-rtmp-module-master --with-http_ssl_module    //编译安装Nginx,并指定上面下载的模块路径# make        # make install

(3)修改Nginx配置文件,添加如下内容并重新载入配置文件

# vim Nginx.confrtmp {      server {          Listen 1935;      #监听的端口号        application myapp {     #自定义的名字            live on;         }          application hls {              live on;              hls on;              hls_path /tmp/hls;               hls_fragment 1s;            hls_playList_length 3s;         }      } }# /etc/init.d/Nginx reload

user  root;worker_processes  4;worker_cpu_affinity 1000 0100 0010 0001;worker_rlimit_nofile 30000;#error_log  logs/error.log warn;pID        /var/run/Nginx.pID;events {    worker_connections  30000;    use epoll;}rtmp {      server {          Listen 1935;          application myapp {              live on;         }         application hls {           live on;               hls on;               hls_path /tmp/rtmp/hls;               hls_fragment 1s;         hls_playList_length 3s;         }      } }http {    limit_req_zone  $binary_remote_addr  zone=req_one:10m rate=1r/s;    autoindex off;    include       /opt/Nginx-1.9.5/conf/mime.types;    default_type  application/octet-stream;    log_format  main  $remote_addr [$time_local] "$request"                       $status $body_bytes_sent "$http_referer"                       "$http_user_agent" $http_x_forwarded_for $request_length $request_time "$upstream_response_time" "$upstream_addr" $host $server_addr;                                               #access_log  logs/access.log  main;    server_tokens off;    sendfile        on;    #tcp_nopush     on;    keepalive_timeout  65;    gzip  on;    gzip_min_length  1K;    gzip_buffers   4 16K;    gzip_comp_level   8;    gzip_http_version 1.0;    gzip_types    application/Json  text/JavaScript  text/plain application/x-JavaScript text/CSS application/xml  text/xml;    #gzip_types    application/Json  text/JavaScript  text/plain application/x-JavaScript text/CSS application/xml  text/xml image/jpeg image/gif image/png;    gzip_disable "MSIE [1-6]\.";    clIEnt_max_body_size 500M;    #server {    #    Listen 80 default;    #    return 500;    #}    include /opt/Nginx-1.9.5/conf/conf.d/*.conf;    }
完整Nginx.conf 安装ffmpeg

ffmpeg命令参考这位朋友的文章:https://www.jianshu.com/p/049d03705a81

(1)安装依赖

# yum install yasm -y

(2)下载ffmpeg并安装

# git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg    //下载ffmpeg# cd ffmpeg# ./configure --prefix=/usr/local/ffmpeg# make# make install

(3)拷贝命令到/usr/bin(方便后面调用)

# ls /usr/local/ffmpeg/        //查看安装目录生成的文件bin  include  lib  share# cp /usr/local/ffmpeg/bin/* /usr/bin/
测试

(1)启用ffmpeg进行推流

# ffmpeg -i rtsp://192.168.1.175:554/11 -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv rtmp://192.168.1.11:1935/myapp/23-i 要处理视频文件的路径,此处地址是一个监控摄像头-s 像素rtmp://192.168.1.11:1935/myapp/23  说明:rtmp://IP:PORT/ myapp指Nginx配置文件中自定义的,22指输出文件的名字-f 强迫采用flv格式别的参数参考上面那位老兄的

 (2)打开VLC 媒体——>流——>网络

 

(3)进入服务器查看输出的位置可以发现已生成文件

# ll /tmp/hls/total 1636-rw-r--r-- 1 root root 500644 Mar 28 17:05 22-1955.ts-rw-r--r-- 1 root root 384460 Mar 28 17:05 22-1956.ts-rw-r--r-- 1 root root 413036 Mar 28 17:05 22-1957.ts-rw-r--r-- 1 root root 366036 Mar 28 17:05 22-1958.ts-rw-r--r-- 1 root root    154 Mar 28 17:05 22.m3u8

(4)还可以使用浏览器这样访问 http://192.168.1.11/hls/22.m3u8

 

至此就搭建完成了,至于别的 *** 作后续再写

总结

以上是内存溢出为你收集整理的Linux-Nginx+rtmp+ffmpeg搭建流媒体服务器全部内容,希望文章能够帮你解决Linux-Nginx+rtmp+ffmpeg搭建流媒体服务器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1032024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存